123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284 |
- PROGRAM GadgetDemo;
- uses exec, triton, tritonmacros, utility, amigalib,amigautils, linklist;
- {
- A demo in FPC Pascal using triton.library
- Update for fpc 1.0.7.
- Removed the use of vartags and pas2c.
- 09 Jan 2003.
- [email protected]
- }
- CONST
- NumInList = 7;
- cyclenum = 4;
- mxstrings : ARRAY[0..NumInList-1] OF PChar = (
- 'Amiga 500',
- 'Amiga 600',
- 'Amiga 1200',
- 'Amiga 2000',
- 'Amiga 3000',
- 'Amiga 4000',
- NIL);
- cyclestrings : ARRAY[0..cyclenum-1] OF PChar = (
- 'Hallo',
- 'Moin',
- 'Tach',
- NIL);
- CONST
- ButtonGadID = 1;
- CheckGadID = 2;
- ScrollGadID = 3;
- ScrollGadTextID = 4;
- SlidGadID = 5;
- SlidGadTextID = 6;
- CycleGadID = 7;
- CycleGadTextID = 8;
- StringGadID = 9;
- EntryGadID = 10;
- PassGadID = 11;
- MxGadID = 12;
- MxGadTextID = 13;
- ListGadID = 14;
- VAR
- Triton_App : pTR_App;
- Project : pTR_Project;
- trmsg : pTR_Message;
- quit : Boolean;
- z : Longint;
- dummy : Longint;
- Mylist : pList;
- MyNode : pFPCNode;
- i : Longint;
- GadID : Longint;
- PROCEDURE CleanExit(errstring : STRING; rc : Longint);
- BEGIN
- IF assigned(Project) THEN TR_CloseProject(Project);
- if assigned(Triton_App) then TR_DeleteApp(Triton_App);
- if assigned(MyList) then DestroyList(MyList);
- IF errstring <> '' THEN WriteLn(errstring);
- Halt(rc)
- END;
- BEGIN
- if not Assigned(TritonBase) then
- begin
- writeln('cannot open ' + TRITONNAME);
- Halt(5);
- end;
- CreateList(MyList);
- FOR i := 0 TO NumInList-2 DO BEGIN
- MyNode := AddNewNode(MyList,mxstrings[i]);
- END;
- Triton_App := TR_CreateAppTags([
- TRCA_Name, AsTag('FPC Pascal Demo'),
- TRCA_LongName, AsTag('FPC Pascal Application Demo :)'),
- TRCA_Version, AsTag('0.01'),
- TRCA_Info, AsTag('Just a test of Triton'),
- TRCA_Release, AsTag('1.0'),
- TRCA_Date, AsTag('01-05-1996'),
- TAG_DONE]);
- if Triton_App = NIL then CleanExit('Can''t create application',20);
- ProjectStart;
- WindowID(1);
- WindowPosition(TRWP_CENTERDISPLAY);
- WindowTitle('Gadgets');
- HorizGroupAC;
- Space;
- VertGroupA;
- Space;
- NamedSeparator('Gadget deactivate');
- Space;
- Button('_Button',ButtonGadID);
- Space;
- HorizGroupSC;
- Space;
- HorizGroup;
- TextID('_Gadget activ?',CheckGadID);
- Space;
- CheckBoxCLEFT(CheckGadID);
- EndGroup;
- Space;
- EndGroup;
- SpaceB;
- NamedSeparator('Pick value');
- Space;
- LineArray;
- BeginLine;
- TextID('Sc_roller',ScrollGadID);
- SetTRTag(TRAT_Flags,TROF_RIGHTALIGN);
- Space;
- SetTRTag(TROB_Scroller,TROF_HORIZ);
- SetTRTag(TRSC_Total,40);
- SetTRTag(TRSC_Visible,10);
- SetTRTag(TRAT_Value,5);
- SetTRTag(TRAT_ID,ScrollGadID);
- Space;
- ClippedTextBoxMW(PChar('5'),ScrollGadTextID,2);
- EndLine;
- Space;
- BeginLine;
- TextID('S_lider',SlidGadID);
- SetTRTag(TRAT_Flags,TROF_RIGHTALIGN);
- Space;
- SliderGadget(1,50,25,SlidGadID);
- Space;
- ClippedTextBoxMW('25',SlidGadTextID,2);
- EndLine;
- Space;
- BeginLine;
- TextID('C_ycle',CycleGadID);
- SetTRTag(TRAT_Flags,TROF_RIGHTALIGN);
- Space;
- CycleGadget(@cyclestrings,0,CycleGadID);
- Space;
- ClippedTextBoxMW(cyclestrings[0],CycleGadTextID,5);
- EndLine;
- EndArray;
- SpaceB;
- NamedSeparator('Type some Text');
- Space;
- LineArray;
- BeginLine;
- TextID('_String',StringGadID);
- SetTRTag(TRAT_Flags,TROF_RIGHTALIGN);
- Space;
- StringGadget('Please change',StringGadID);
- GetEntryButton(EntryGadID);
- EndLine;
- Space;
- BeginLine;
- TextID('_Password',PassGadID);
- SetTRTag(TRAT_Flags,TROF_RIGHTALIGN);
- Space;
- PasswordGadget('',PassGadID);
- EndLine;
- EndArray;
- Space;
- EndGroup;
- Space;
- VertSeparator;
- Space;
- VertGroupAC;
- Space;
- NamedSeparatorI('C_hoose',MxGadID);
- Space;
- MXGadget(@mxstrings,4,MxGadID);
- Space;
- ClippedTextBox(mxstrings[4],MxGadTextID);
- SpaceB;
- NamedSeparatorI('D_oubleclick!',ListGadID);
- Space;
- ListSS(Mylist,ListGadID,0,0);
- EndGroup;
- Space;
- EndGroup;
- EndProject;
- Project := TR_OpenProject(Triton_App,@tritontags);
- IF Project = NIL THEN CleanExit('No project',20);
- quit := False;
- WHILE NOT quit 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
- TR_LockProject(project);
- dummy := TR_EasyRequest(Triton_App,'%3Sure you want to end this demo?','Yes|No',NIL);
- TR_UnlockProject(project);
- IF dummy = 1 THEN quit := True;
- END;
- TRMS_NEWVALUE :
- BEGIN
- GadID := trmsg^.trm_ID;
- CASE GadID OF
- CheckGadID :
- BEGIN
- dummy := trmsg^.trm_Data;
- IF dummy = 1 THEN BEGIN
- TR_Disable(project,ButtonGadID);
- END ELSE BEGIN
- TR_Enable(project,ButtonGadID);
- TR_SetString(project,StringGadID,'hello test');
- END;
- END;
- ScrollGadID : TR_SetText(project,ScrollGadTextID,LongToStr(trmsg^.trm_Data));
- SlidGadID : TR_SetText(project,SlidGadTextID,LongToStr(trmsg^.trm_Data));
- CycleGadID : TR_SetText(project,CycleGadTextID,cyclestrings[trmsg^.trm_Data]);
- StringGadID : ;
- EntryGadID : ;
- PassGadID : ;
- MxGadID:
- BEGIN
- TR_SetText(project,MxGadTextID,mxstrings[trmsg^.trm_Data]);
- TR_SetValue(project,ListGadID,(trmsg^.trm_Data));
- END;
- ListGadID :
- BEGIN
- TR_SetValue(project,MxGadID,(trmsg^.trm_Data));
- TR_SetText(project,MxGadTextID,mxstrings[trmsg^.trm_Data]);
- END;
- END;
- END;
- TRMS_ACTION :
- BEGIN
- GadID := trmsg^.trm_ID;
- CASE GadID OF
- ButtonGadID :
- begin
- TR_LockProject(project);
- TR_EasyRequest(Triton_App,'You clicked on button ' + LongToStr(trmsg^.trm_ID),'_Aha',nil);
- TR_UnlockProject(Project);
- END;
- EntryGadID:
- BEGIN
- TR_LockProject(project);
- z := TR_EasyRequest(Triton_App,TR_GetSTRPTR(project,StringGadID),'OK',NIL);
- TR_UnlockProject(Project);
- END;
- END;
- END;
- ELSE
- END;
- END;
- TR_ReplyMsg(trmsg);
- END;
- UNTIL quit OR (trmsg = NIL);
- END;
- CleanExit('',0);
- END.
|