palette.pas 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. PROGRAM Palette;
  2. uses triton,tritonmacros,utility;
  3. {
  4. A demo in FPC Pascal using triton.library
  5. Updated for fpc 1.0.7
  6. 11 Jan 2003.
  7. [email protected]
  8. }
  9. var
  10. Triton_App : pTR_App;
  11. Project : pTR_Project;
  12. close_me : boolean;
  13. trmsg : pTR_Message;
  14. dummy : longint;
  15. begin
  16. if not Assigned(TritonBase) then
  17. begin
  18. writeln('cannot open ' + TRITONNAME);
  19. Halt(5);
  20. end;
  21. Triton_App := TR_CreateAppTags([
  22. TRCA_Name, AsTag('Triton Palette Demo'),
  23. TRCA_Release, AsTag('1.0'),
  24. TRCA_Date, AsTag('03-06-1998'),
  25. TAG_DONE]);
  26. if Triton_App <> nil then begin
  27. ProjectStart;
  28. WindowID(1);
  29. WindowTitle('Palette');
  30. HorizGroupA;
  31. Space;
  32. VertGroupA;
  33. Space;
  34. CenteredTextID('_Palette',7);
  35. Space;
  36. PaletteGadget(1,7);
  37. Space;
  38. EndGroup;
  39. Space;
  40. EndGroup;
  41. EndProject;
  42. Project := TR_OpenProject(Triton_App,@tritontags);
  43. IF Project <> NIL THEN BEGIN
  44. close_me := FALSE;
  45. WHILE NOT close_me DO BEGIN
  46. dummy := TR_Wait(Triton_App,0);
  47. REPEAT
  48. trmsg := TR_GetMsg(Triton_App);
  49. IF trmsg <> NIL THEN BEGIN
  50. IF (trmsg^.trm_Project = Project) THEN BEGIN
  51. CASE trmsg^.trm_Class OF
  52. TRMS_CLOSEWINDOW : begin
  53. writeln('Your final colour was ',TR_GetValue(Project,7));
  54. close_me := True;
  55. end;
  56. TRMS_ERROR: WriteLN(TR_GetErrorString(trmsg^.trm_Data));
  57. TRMS_NEWVALUE : IF trmsg^.trm_ID = 7 then writeln('You picked colour ',trmsg^.trm_Data);
  58. END;
  59. END;
  60. TR_ReplyMsg(trmsg);
  61. END;
  62. UNTIL close_me OR (trmsg = NIL);
  63. END;
  64. TR_CloseProject(Project);
  65. end;
  66. TR_DeleteApp(Triton_App);
  67. END ELSE writeln('Can''t create Application',20);
  68. end.