home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #5 / Amiga Plus CD - 2000 - No. 5.iso / Tools / Dev / fpc / triton / examples / Listview.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2000-01-01  |  2.8 KB  |  104 lines

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