mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-06-05 16:18:36 +02:00
113 lines
2.8 KiB
ObjectPascal
113 lines
2.8 KiB
ObjectPascal
{ Demo showing activating and deactivating objects
|
|
}
|
|
program objin;
|
|
|
|
uses xforms;
|
|
|
|
var
|
|
form : PFL_FORM;
|
|
|
|
button1,
|
|
button2,
|
|
button3,
|
|
button4,
|
|
group,
|
|
firstbut : PFL_OBJECT;
|
|
|
|
procedure exit_cb(obj : PFL_OBJECT; arg : longint); cdecl;
|
|
begin
|
|
halt;
|
|
end;
|
|
|
|
|
|
|
|
Procedure setit(obj : PFL_OBJECT; val : longint);
|
|
begin
|
|
if (val<>0) then
|
|
begin
|
|
fl_set_object_lcol(obj,FL_BLACK);
|
|
fl_activate_object(obj);
|
|
end
|
|
else
|
|
begin
|
|
fl_set_object_lcol(obj,FL_INACTIVE);
|
|
fl_deactivate_object(obj);
|
|
end
|
|
end;
|
|
|
|
Procedure setit_cb(obj : PFL_OBJECT; val : longint); cdecl;
|
|
|
|
begin
|
|
setit (obj,val)
|
|
end;
|
|
|
|
Procedure doit(b1,b2,b3,b4 : longint);
|
|
|
|
begin
|
|
setit(button1,b1);
|
|
setit(button2,b2);
|
|
setit(button3,b3);
|
|
setit(button4,b4);
|
|
end;
|
|
|
|
Procedure set_active(obj : PFL_OBJECT; arg : longint); cdecl;
|
|
|
|
begin
|
|
case arg of
|
|
0: doit(1,1,1,1);
|
|
1: doit(0,0,0,0);
|
|
2: doit(0,1,0,1);
|
|
3: doit(1,0,1,0);
|
|
end;
|
|
end;
|
|
|
|
Procedure create_form;
|
|
|
|
var obj : PFL_OBJECT;
|
|
|
|
begin
|
|
form := fl_bgn_form(FL_NO_BOX,420,230);
|
|
obj := fl_add_box(FL_UP_BOX,0,0,420,230,'');
|
|
fl_set_object_color(obj,FL_SLATEBLUE,FL_COL1);
|
|
obj := fl_add_button(FL_NORMAL_BUTTON,20,170,150,40,'Button 1');
|
|
button1 := obj;
|
|
fl_set_object_lsize(obj,FL_LARGE_SIZE);
|
|
fl_set_button_shortcut(obj, '1 ', 1);
|
|
obj := fl_add_button(FL_NORMAL_BUTTON,20,120,150,40,'Button 2');
|
|
button2 := obj;
|
|
fl_set_object_lsize(obj,FL_LARGE_SIZE);
|
|
fl_set_button_shortcut(obj, '2 ', 1);
|
|
obj := fl_add_button(FL_NORMAL_BUTTON,20,70,150,40,'Button 3');
|
|
button3 := obj;
|
|
fl_set_object_lsize(obj,FL_LARGE_SIZE);
|
|
fl_set_button_shortcut(obj, '3 ', 1);
|
|
obj := fl_add_button(FL_NORMAL_BUTTON,20,20,150,40,'Button 4');
|
|
button4 := obj;
|
|
fl_set_button_shortcut(obj, '4 ', 1);
|
|
fl_set_object_lsize(obj,FL_LARGE_SIZE);
|
|
group := fl_bgn_group();
|
|
obj := fl_add_lightbutton(FL_RADIO_BUTTON,260,180,140,30,'All active');
|
|
firstbut := obj;
|
|
fl_set_object_callback(obj,PFL_CALLBACKPTR(@set_active),0);
|
|
obj := fl_add_lightbutton(FL_RADIO_BUTTON,260,150,140,30,'Non active');
|
|
fl_set_object_callback(obj,PFL_CALLBACKPTR(@set_active),1);
|
|
obj := fl_add_lightbutton(FL_RADIO_BUTTON,260,120,140,30,'Even active');
|
|
fl_set_object_callback(obj,PFL_CALLBACKPTR(@set_active),2);
|
|
obj := fl_add_lightbutton(FL_RADIO_BUTTON,260,90,140,30,'Odd active');
|
|
fl_set_object_callback(obj,PFL_CALLBACKPTR(@set_active),3);
|
|
fl_end_group();
|
|
obj := fl_add_button(FL_NORMAL_BUTTON,270,20,130,30,'Quit');
|
|
fl_set_object_callback(obj,PFL_CALLBACKPTR(@exit_cb),0);
|
|
fl_end_form();
|
|
end;
|
|
|
|
begin
|
|
fl_initialize(@argc, argv, 'FormDemo', nil, 0);
|
|
create_form;
|
|
|
|
fl_set_button(firstbut,1);
|
|
fl_show_form(form,FL_PLACE_CENTER,FL_NOBORDER,NiL);
|
|
while (fl_do_forms()<>nil) do
|
|
begin end;
|
|
end.
|