| 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.
 |