counter.pp 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. { This is an example of the use of counters.
  2. }
  3. program counter;
  4. uses xforms;
  5. var
  6. form : PFL_FORM;
  7. result : PFL_OBJECT;
  8. co : array[0..2] of PFL_OBJECT;
  9. procedure color_change(ob : PFL_OBJECT; data : longint);cdecl;
  10. var r,g,b : longint;
  11. begin
  12. r := round(fl_get_counter_value(co[0]));
  13. g := round(fl_get_counter_value(co[1]));
  14. b := round(fl_get_counter_value(co[2]));
  15. fl_mapcolor(FL_FREE_COL1,r,g,b);
  16. fl_redraw_object(result);
  17. end;
  18. procedure create_form_form;
  19. var
  20. obj : PFL_OBJECT;
  21. begin
  22. form := fl_bgn_form(FL_NO_BOX,480,200);
  23. obj := fl_add_box(FL_UP_BOX,0,0,480,200,'');
  24. obj := fl_add_box(FL_DOWN_BOX,310,20,150,160,'');
  25. result := obj ;
  26. fl_set_object_dblbuffer(result, 1);
  27. obj := fl_add_counter(FL_NORMAL_COUNTER,20,20,270,30,'');
  28. co[0] := obj;
  29. fl_set_object_color(obj,FL_INDIANRED,FL_RED);
  30. fl_set_object_callback(obj,PFL_CALLBACKPTR(@color_change),0);
  31. obj:= fl_add_counter(FL_NORMAL_COUNTER,20,60,270,30,'');
  32. co[1] := obj;
  33. fl_set_object_color(obj,FL_PALEGREEN,FL_GREEN);
  34. fl_set_object_callback(obj,PFL_CALLBACKPTR(@color_change),0);
  35. obj := fl_add_counter(FL_NORMAL_COUNTER,20,100,270,30,'');
  36. co[2] := obj ;
  37. fl_set_object_color(obj,FL_SLATEBLUE,FL_BLUE);
  38. fl_set_object_callback(obj,PFL_CALLBACKPTR(@color_change),0);
  39. obj := fl_add_button(FL_NORMAL_BUTTON,100,150,110,30,'Exit');
  40. fl_end_form();
  41. end;
  42. var i : longint;
  43. begin
  44. fl_initialize(@argc, argv, 'FormDemo', nil, 0);
  45. create_form_form();
  46. fl_set_object_color(result,FL_FREE_COL1,FL_FREE_COL1);
  47. for i:=0 to 2 do
  48. begin
  49. fl_set_counter_bounds(co[i],0.0,255.0);
  50. fl_set_counter_step(co[i],1.0,10.0);
  51. fl_set_counter_precision(co[i],0);
  52. fl_set_counter_return(co[i],1);
  53. end;
  54. fl_call_object_callback(co[0]);
  55. fl_show_form(form,FL_PLACE_CENTER,FL_NOBORDER,'Counter');
  56. fl_do_forms();
  57. end.