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.
|