12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- program objpos;
- uses xforms;
- const
- dx : TFL_Coord = 11 ;
- dy : TFL_Coord = 7 ;
- procedure move_cb(ob : PFL_OBJECT; data : longint);cdecl;
- var
- but : PFL_OBJECT;
- x,y,w,h : TFL_COORD;
- begin
- but := PFL_OBJECT (data);
- fl_get_object_geometry(but,@x,@y, @w, @h);
- if ( (x + dx) < 0) or ( (x+w+dx) >= but^.form^.w) then
- dx := -dx;
- if ( (y + dy) < 0) or ( (y+h+dy) >= but^.form^.h) then
- dy := -dy;
- x := x+dx;
- y := y+dy;
- fl_set_object_position(but,x,y);
- end;
- var
- form : PFL_FORM;
- but, obj : PFL_OBJECT ;
- begin
- fl_initialize(@argc, argv, 'FormDemo', nil, 0);
- form := fl_bgn_form(FL_DOWN_BOX,400,200);
- but := fl_add_button(FL_NORMAL_BUTTON,140,160,70,35,'Exit');
- obj := fl_add_button(FL_TOUCH_BUTTON,330,150,50,30,'Move');
- fl_set_object_callback(obj,PFL_CALLBACKPTR(@move_cb),longint(but));
- fl_end_form();
- fl_show_form(form,FL_PLACE_MOUSE,FL_NOBORDER,'ObjPos');
- fl_do_forms();
- end.
|