listview.pas 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. PROGRAM ListView;
  2. uses exec, triton, tritonmacros, linklist, utility;
  3. {
  4. A demo in FPC Pascal using triton.library
  5. Updated for fpc1.0.7
  6. 11 Jan 2003.
  7. [email protected]
  8. }
  9. const
  10. weekday : array [0..6] of pchar = (
  11. 'Monday',
  12. 'Tuesday',
  13. 'Wendsday',
  14. 'Thursday',
  15. 'Friday',
  16. 'Saturday',
  17. 'Sunday');
  18. VAR
  19. Project : pTR_Project;
  20. close_me : BOOLEAN;
  21. trmsg : pTR_Message;
  22. dummy : longint;
  23. mylist : pList;
  24. mynode : pFPCNode;
  25. num : longint;
  26. Triton_App : pTr_App;
  27. PROCEDURE CleanExit(errstring : STRING; rc : Longint);
  28. BEGIN
  29. if assigned(Triton_App) then TR_DeleteApp(Triton_App);
  30. IF assigned(Project) THEN TR_CloseProject(Project);
  31. IF Assigned(mylist) THEN DestroyList(mylist);
  32. IF errstring <> '' THEN WriteLn(errstring);
  33. Halt(rc)
  34. END;
  35. begin
  36. Triton_App := TR_CreateAppTags([
  37. TRCA_Name,'Triton ListView',
  38. TRCA_Release,'1.0',
  39. TRCA_Date,'03-02-1998',
  40. TAG_DONE]);
  41. if Triton_App = nil then Cleanexit('Can''t create application',20);
  42. CreateList(mylist);
  43. for dummy := 0 to 6 do begin
  44. mynode := AddNewNode(mylist,weekday[dummy]);
  45. end;
  46. ProjectStart;
  47. WindowID(1);
  48. WindowPosition(TRWP_CENTERDISPLAY);
  49. WindowTitle('Listview');
  50. HorizGroupA;
  51. Space;
  52. VertGroupA;
  53. Space;
  54. CenteredTextID('_List',7);
  55. Space;
  56. ListSS(mylist,7,0,2);
  57. Space;
  58. EndGroup;
  59. Space;
  60. EndGroup;
  61. EndProject;
  62. Project := TR_OpenProject(Triton_App,@tritontags);
  63. IF Project = NIL THEN CleanExit('Can''t create project',20);
  64. close_me := FALSE;
  65. WHILE NOT close_me DO BEGIN
  66. dummy := TR_Wait(Triton_App,0);
  67. REPEAT
  68. trmsg := TR_GetMsg(Triton_App);
  69. IF trmsg <> NIL THEN BEGIN
  70. IF (trmsg^.trm_Project = Project) THEN BEGIN
  71. CASE trmsg^.trm_Class OF
  72. TRMS_CLOSEWINDOW : begin
  73. num := TR_GetValue(Project,7);
  74. mynode := GetNodeNumber(mylist,num);
  75. writeln('You picked number: ',num,' and the text was: ',GetNodeData(mynode));
  76. close_me := True;
  77. end;
  78. TRMS_ERROR: WriteLN(TR_GetErrorString(trmsg^.trm_Data));
  79. TRMS_NEWVALUE : IF trmsg^.trm_ID = 7 then writeln('You picked number: ',TR_GetValue(Project,7));
  80. END;
  81. END;
  82. TR_ReplyMsg(trmsg);
  83. END;
  84. UNTIL close_me OR (trmsg = NIL);
  85. END;
  86. Cleanexit('',0);
  87. end.