mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-06-06 12:38:29 +02:00
73 lines
2.1 KiB
ObjectPascal
73 lines
2.1 KiB
ObjectPascal
{ This is an example of the use of filled dials, dial range
|
|
and dial direction.
|
|
}
|
|
Program fdial;
|
|
|
|
uses xforms;
|
|
|
|
var
|
|
form: PFL_FORM;
|
|
button, red, green, blue, redtext, greentext, bluetext, theresult : PFL_OBJECT;
|
|
|
|
Procedure makeform;
|
|
|
|
begin
|
|
form := fl_bgn_form(FL_UP_BOX,300,330);
|
|
button := fl_add_button(FL_NORMAL_BUTTON,45,15,210,45,'A Color Editor');
|
|
fl_set_object_lsize(button,FL_LARGE_SIZE);
|
|
|
|
red := fl_add_dial(FL_FILL_DIAL,30,240,60,60,'Red');
|
|
fl_set_dial_bounds(red,0.0,255.0);
|
|
fl_set_dial_value(red,128.0);
|
|
fl_set_object_color(red,FL_DIAL_COL1, FL_RED);
|
|
redtext := fl_add_box(FL_DOWN_BOX,105,255,50,25,'');
|
|
|
|
green := fl_add_dial(FL_FILL_DIAL,30,155,60,60,'Green');
|
|
fl_set_dial_bounds(green,0.0,255.0);
|
|
fl_set_dial_value(green,128.0);
|
|
fl_set_dial_angles(green, 45.0, (360-45.0));
|
|
fl_set_object_color(green,FL_DIAL_COL1, FL_GREEN);
|
|
greentext := fl_add_box(FL_DOWN_BOX,105,170,50,25,'');
|
|
|
|
blue := fl_add_dial(FL_FILL_DIAL,30,70,60,60,'Blue');
|
|
fl_set_dial_bounds(blue,0.0,255.0);
|
|
fl_set_dial_value(blue,128.0);
|
|
fl_set_object_color(blue,FL_DIAL_COL1,FL_BLUE);
|
|
fl_set_dial_direction(blue, FL_DIAL_CCW);
|
|
bluetext := fl_add_box(FL_DOWN_BOX,105,90,50,25,'');
|
|
|
|
theresult := fl_add_box(FL_DOWN_BOX,180,70,90,245,'');
|
|
fl_set_object_color(theresult,FL_FREE_COL1,FL_FREE_COL1);
|
|
fl_set_object_dblbuffer(theresult,1);
|
|
fl_end_form;
|
|
end;
|
|
|
|
var
|
|
ret : PFL_OBJECT;
|
|
r,g,b : longint;
|
|
st : string;
|
|
|
|
begin
|
|
fl_initialize(@argc, argv, 'FormDemo', nil, 0);
|
|
makeform;
|
|
fl_show_form(form,FL_PLACE_MOUSE,FL_TRANSIENT,'A Form');
|
|
repeat
|
|
r := round(fl_get_dial_value(red)+0.001);
|
|
g := round(fl_get_dial_value(green)+0.001);
|
|
b := round(fl_get_dial_value(blue)+0.001);
|
|
fl_mapcolor(FL_FREE_COL1,r,g,b);
|
|
fl_redraw_object(theresult);
|
|
str (r,st);
|
|
st:=st+#0;
|
|
fl_set_object_label(redtext,@st[1]);
|
|
str (g,st);
|
|
st:=st+#0;
|
|
fl_set_object_label(greentext,@st[1]);
|
|
str (b,st);
|
|
st:=st+#0;
|
|
fl_set_object_label(bluetext,@st[1]);
|
|
ret := fl_do_forms;
|
|
until (ret = button);
|
|
fl_hide_form(form);
|
|
end.
|