1program inputall; 2 3uses xforms; 4 5type TFD_INPUT = record 6 input : PFL_FORM; 7 vdata : pointer; 8 norminput,multiinput,report : PFL_OBJECT; 9 end; 10PFD_INPUT = ^TFD_input; 11 12procedure done_cb( ob : PFL_OBJECT; data : longint);cdecl; 13 14begin 15 halt(0); 16end; 17 18procedure input_cb( ob : PFL_OBJECT; data : longint);cdecl; 19 20var 21 cx, cy, pos : Longint; 22 buf,temp : string[128]; 23 24begin 25 pos := fl_get_input_cursorpos(ob, @cx,@cy); 26 str (pos,temp); buf:='P = '+temp+' '; 27 str (cx,temp); buf:=buf+'x= '+temp+' '; 28 str (cy,temp); buf:=buf+'y= '+temp+#0; 29 fl_set_object_label( PFD_input(ob^.form^.fdui)^.report,@buf[1]); 30end; 31 32procedure hide_show_cb(ob : PFL_OBJECT; data : longint);cdecl; 33 34var fd: PFD_input; 35 36begin 37 fd := ob^.form^.fdui; 38 if (fd^.multiinput^.visible<>0) then 39 fl_hide_object(fd^.multiinput) 40 else 41 fl_show_object(fd^.multiinput); 42end; 43 44 45function create_form_input : PFD_input; 46 47var 48 obj : PFL_OBJECT; 49 fdui : PFD_input; 50 51begin 52 new(fdui); 53 fdui^.input := fl_bgn_form(FL_NO_BOX, 441, 441); 54 obj := fl_add_box(FL_UP_BOX,0,0,441,441,''); 55 obj := fl_add_input(FL_NORMAL_INPUT,40,40,340,30,'NormalInput'); 56 fdui^.norminput := obj; 57 fl_set_object_lalign(obj,FL_ALIGN_TOP_LEFT); 58 fl_set_object_callback(obj,PFL_CALLBACKPTR(@input_cb),0); 59 obj := fl_add_input(FL_INT_INPUT,40,100,160,30,'IntInput'); 60 fl_set_object_lalign(obj,FL_ALIGN_TOP_LEFT); 61 obj := fl_add_input(FL_FLOAT_INPUT,230,100,160,30,'FloatInput'); 62 fl_set_object_lalign(obj,FL_ALIGN_TOP_LEFT); 63 obj := fl_add_input(FL_DATE_INPUT,40,150,160,30,'DateInput'); 64 fl_set_object_lalign(obj,FL_ALIGN_TOP_LEFT); 65 obj := fl_add_input(FL_SECRET_INPUT,230,150,160,30,'Secretinput'); 66 fl_set_object_lalign(obj,FL_ALIGN_TOP_LEFT); 67 obj:= fl_add_input(FL_MULTILINE_INPUT,40,210,360,180,'MMM'); 68 fdui^.multiinput := obj; 69 fl_set_object_callback(obj,PFL_CALLBACKPTR(@input_cb),0); 70 obj := fl_add_text(FL_NORMAL_TEXT,30,400,210,30,''); 71 fdui^.report := obj; 72 fl_set_object_lalign(obj,FL_ALIGN_LEFT or FL_ALIGN_INSIDE); 73 obj := fl_add_button(FL_NORMAL_BUTTON,330,400,70,30,'Done'); 74 fl_set_object_callback(obj,PFL_CALLBACKPTR(@done_cb),0); 75 obj := fl_add_button(FL_NORMAL_BUTTON,250,400,70,30,'Hide/Show'); 76 fl_set_object_callback(obj,PFL_CALLBACKPTR(@hide_show_cb),0); 77 fl_end_form(); 78 fdui^.input^.fdui := fdui; 79 create_form_input:=fdui; 80end; 81 82 83var fd_input : PFD_input; 84 85begin 86 fl_initialize(@argc, argv, '', nil, 0); 87 fd_input := create_form_input(); 88 89 { fill-in form initialization code } 90 fl_set_object_dblbuffer(fd_input^.report,1); 91 fl_set_object_return(fd_input^.multiinput,FL_RETURN_ALWAYS); 92 fl_set_object_return(fd_input^.norminput,FL_RETURN_ALWAYS); 93 94 { show the first form } 95 fl_show_form(fd_input^.input,FL_PLACE_CENTERFREE,FL_FULLBORDER,'input'); 96 while (fl_do_forms<>nil) do; 97end. 98