summaryrefslogtreecommitdiff
path: root/packages/amunits/examples/otherlibs/listview.pas
blob: df48b5f14b7cc919c2dc2d8123b1df42e7d6255d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
PROGRAM ListView;


uses exec, triton, tritonmacros, linklist, utility;



{
   A demo in FPC Pascal using triton.library

   Updated for fpc1.0.7
   11 Jan 2003.

   nils.sjoholm@mailbox.swipnet.se
}

const

     weekday : array [0..6] of pchar =  (
                'Monday',
                'Tuesday',
                'Wendsday',
                'Thursday',
                'Friday',
                'Saturday',
                'Sunday');

VAR
     Project  : pTR_Project;
     close_me : BOOLEAN;
     trmsg : pTR_Message;
     dummy : longint;
     mylist : pList;
     mynode : pFPCNode;
     num : longint;
     Triton_App : pTr_App;


PROCEDURE CleanExit(errstring : STRING; rc : Longint);
BEGIN
    if assigned(Triton_App) then TR_DeleteApp(Triton_App);
    IF assigned(Project) THEN TR_CloseProject(Project);
    IF Assigned(mylist) THEN DestroyList(mylist);
    IF errstring <> '' THEN WriteLn(errstring);
    Halt(rc)
END;

begin

    Triton_App := TR_CreateAppTags([
                     TRCA_Name,'Triton ListView',
                     TRCA_Release,'1.0',
                     TRCA_Date,'03-02-1998',
                     TAG_DONE]);

    if Triton_App = nil then Cleanexit('Can''t create application',20);

    CreateList(mylist);
    for dummy := 0 to 6 do begin
        mynode := AddNewNode(mylist,weekday[dummy]);
    end;
      ProjectStart;
      WindowID(1);
      WindowPosition(TRWP_CENTERDISPLAY);
      WindowTitle('Listview');
         HorizGroupA;
            Space;
            VertGroupA;
               Space;
               CenteredTextID('_List',7);
               Space;
               ListSS(mylist,7,0,2);
               Space;
            EndGroup;
            Space;
         EndGroup;
      EndProject;

  Project := TR_OpenProject(Triton_App,@tritontags);
    IF Project = NIL THEN CleanExit('Can''t create project',20);
      close_me := FALSE;
      WHILE NOT close_me DO BEGIN
        dummy := TR_Wait(Triton_App,0);
        REPEAT
          trmsg := TR_GetMsg(Triton_App);
          IF trmsg <> NIL THEN BEGIN
            IF (trmsg^.trm_Project = Project) THEN BEGIN
               CASE trmsg^.trm_Class OF
                 TRMS_CLOSEWINDOW : begin
                                       num := TR_GetValue(Project,7);
                                       mynode := GetNodeNumber(mylist,num);
                                       writeln('You picked number: ',num,' and the text was: ',GetNodeData(mynode));
                                       close_me := True;
                                    end;
                 TRMS_ERROR:        WriteLN(TR_GetErrorString(trmsg^.trm_Data));
                 TRMS_NEWVALUE    : IF trmsg^.trm_ID = 7 then writeln('You picked number: ',TR_GetValue(Project,7));
               END;
            END;
            TR_ReplyMsg(trmsg);
          END;
        UNTIL close_me OR (trmsg = NIL);
      END;
   Cleanexit('',0);
end.