inputall.pp 2.8 KB

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