objpos.pp 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. program objpos;
  2. uses forms;
  3. const
  4. dx : TFL_Coord = 11 ;
  5. dy : TFL_Coord = 7 ;
  6. procedure move_cb(ob : PFL_OBJECT; data : longint);export;
  7. var
  8. but : PFL_OBJECT;
  9. x,y,w,h : TFL_COORD;
  10. begin
  11. but := PFL_OBJECT (data);
  12. fl_get_object_geometry(but,@x,@y, @w, @h);
  13. if ( (x + dx) < 0) or ( (x+w+dx) >= but^.form^.w) then
  14. dx := -dx;
  15. if ( (y + dy) < 0) or ( (y+h+dy) >= but^.form^.h) then
  16. dy := -dy;
  17. x := x+dx;
  18. y := y+dy;
  19. fl_set_object_position(but,x,y);
  20. end;
  21. var
  22. form : PFL_FORM;
  23. but, obj : PFL_OBJECT ;
  24. begin
  25. fl_initialize(@argc, argv, 'FormDemo', nil, 0);
  26. form := fl_bgn_form(FL_DOWN_BOX,400,200);
  27. but := fl_add_button(FL_NORMAL_BUTTON,140,160,70,35,'Exit');
  28. obj := fl_add_button(FL_TOUCH_BUTTON,330,150,50,30,'Move');
  29. fl_set_object_callback(obj,PFL_CALLBACKPTR(@move_cb),longint(but));
  30. fl_end_form();
  31. fl_show_form(form,FL_PLACE_MOUSE,FL_NOBORDER,'ObjPos');
  32. fl_do_forms();
  33. end. $Log$
  34. end. Revision 1.2 2000-07-13 11:33:14 michael
  35. end. + removed logs
  36. end.
  37. }