positioner.pp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. { This demo shows the use of a positioner. }
  2. program positioner;
  3. uses xforms;
  4. var
  5. xval, yval : PFL_Object;
  6. { callback routine }
  7. Procedure Do_position (ob :PFL_OBJECT; q : longint);
  8. var
  9. st : string [30];
  10. begin
  11. str(fl_get_positioner_xvalue(ob),st);st:=st+#0;
  12. fl_set_object_label(xval,@st[1]);
  13. str(fl_get_positioner_yvalue(ob),st);st:=st+#0;
  14. fl_set_object_label(yval,@st[1]);
  15. end;
  16. procedure positioner_cb(ob :PFL_OBJECT; q : longint);cdecl;
  17. begin
  18. Do_Position (ob,q);
  19. end;
  20. var
  21. form : PFL_FORM;
  22. thepos, button : PFL_OBJECT;
  23. begin
  24. fl_initialize(@argc, argv, 'FormDemo', nil, 0);
  25. form := fl_bgn_form(FL_UP_BOX,400,280);
  26. thepos := fl_add_positioner(FL_NORMAL_POSITIONER,40,40,200,200,'');
  27. fl_set_positioner_xbounds(thepos,0,1);
  28. fl_set_positioner_ybounds(thepos,0,1);
  29. fl_set_object_callback(thepos,PFL_CALLBACKPTR(@positioner_cb),0);
  30. xval := fl_add_box(FL_DOWN_BOX,270,40,100,30,'');
  31. yval := fl_add_box(FL_DOWN_BOX,270,90,100,30,'');
  32. fl_set_object_color(xval,FL_COL1,FL_COL1);
  33. fl_set_object_color(yval,FL_COL1,FL_COL1);
  34. button := fl_add_button(FL_NORMAL_BUTTON,270,210,100,30,'Exit');
  35. fl_end_form();
  36. fl_show_form(form,FL_PLACE_CENTER,FL_NOBORDER,NiL);
  37. Do_position(thepos,0);
  38. fl_do_forms;
  39. fl_hide_form(form);
  40. end.