ndial.pp 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. { This is an example of the use of dials. }
  2. uses xforms;
  3. var
  4. form : PFL_FORM;
  5. button, red, green, blue, redtext, greentext, bluetext, theresult : PFL_OBJECT;
  6. procedure makeform;
  7. begin
  8. form := fl_bgn_form(FL_UP_BOX,300,330);
  9. button := fl_add_button(FL_NORMAL_BUTTON,45,15,210,45,'A Color Editor');
  10. fl_set_object_lsize(button,FL_LARGE_SIZE);
  11. red := fl_add_dial(FL_NORMAL_DIAL,30,240,60,60,'Red');
  12. fl_set_dial_bounds(red,0.0,255.0);
  13. fl_set_dial_value(red,128.0);
  14. fl_set_object_color(red,FL_RED,FL_DIAL_COL2);
  15. redtext := fl_add_box(FL_DOWN_BOX,105,255,50,25,'');
  16. green := fl_add_dial(FL_NORMAL_DIAL,30,155,60,60,'Green');
  17. fl_set_dial_bounds(green,0.0,255.0);
  18. fl_set_dial_value(green,128.0);
  19. fl_set_object_color(green,FL_GREEN,FL_DIAL_COL2);
  20. greentext := fl_add_box(FL_DOWN_BOX,105,170,50,25,'');
  21. blue := fl_add_dial(FL_NORMAL_DIAL,30,70,60,60,'Blue');
  22. fl_set_dial_bounds(blue,0.0,255.0);
  23. fl_set_dial_value(blue,128);
  24. fl_set_object_color(blue,FL_BLUE,FL_DIAL_COL2);
  25. bluetext := fl_add_box(FL_DOWN_BOX,105,90,50,25,'');
  26. theresult := fl_add_box(FL_DOWN_BOX,180,70,90,245,'');
  27. fl_set_object_color(theresult,FL_FREE_COL1,FL_FREE_COL1);
  28. fl_set_object_dblbuffer(theresult, 1);
  29. fl_end_form;
  30. end;
  31. var
  32. ret : PFL_OBJECT;
  33. r,g,b : Longint;
  34. st : string[100];
  35. begin
  36. fl_initialize(@argc, argv, 'FormDemo', nil, 0);
  37. makeform;
  38. fl_show_form(form,FL_PLACE_MOUSE,FL_TRANSIENT,'A Form');
  39. repeat
  40. r := round( fl_get_dial_value(red));
  41. g := round(fl_get_dial_value(green));
  42. b := round(fl_get_dial_value(blue));
  43. fl_mapcolor(FL_FREE_COL1,r,g,b);
  44. fl_redraw_object(theresult);
  45. str(r,st);st:=st+#0; fl_set_object_label(redtext,@st[1]);
  46. str(g,st);st:=st+#0; fl_set_object_label(greentext,@st[1]);
  47. str(b,st);st:=st+#0; fl_set_object_label(bluetext,@st[1]);
  48. ret := fl_do_forms;
  49. until (ret = button);
  50. fl_hide_form(form);
  51. end.