mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-07-09 16:15:58 +02:00
105 lines
2.8 KiB
ObjectPascal
105 lines
2.8 KiB
ObjectPascal
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.
|