/* *********************************************** */
/* Programmmanager.rexx                            */
/* Author: Reinhard Steinert                       */
/*                                                 */
/* $VER: Programmmanager.rexx v2.2 (21.12.98)      */
/***************************************************/

OPTIONS RESULTS
ADDRESS COMMAND

SIGNAL ON break_c
SIGNAL ON failure
SIGNAL ON halt
SIGNAL ON ioerr
SIGNAL ON syntax
SIGNAL ON error

CR = '0a'x

PARSE SOURCE . . . Pfadkomplett .

IF ~SHOW('LIBRARIES','tritonrexx.library') THEN DO
IF ~ADDLIB('tritonrexx.library',10,-30,0) THEN DO
SAY 'Kann die <tritonrexx.library> nicht öffnen!'
'WAIT 4'
EXIT
END
END
IF ~SHOW('LIBRARIES','rexxsupport.library') THEN DO
IF ~ADDLIB('rexxsupport.library',0,-30,0) THEN DO
SAY 'Kann die <rexxsupport.library> nicht öffnen!'
'WAIT 4'
EXIT
END
END
IF ~SHOW('LIBRARIES','rexxtricks.library') THEN DO
IF ~ADDLIB('rexxtricks.library',0,-30,0) THEN DO
SAY 'Kann die <rexxtricks.library> nicht öffnen!'
'WAIT 4'
EXIT
END
END

Pfad = PATHPART(Pfadkomplett)
Pfad = Pfad'/'

Bild = Pfad''ProgrammManager.iff

IF ~EXISTS(Pfad'Programmmanager.txt') THEN DO
CALL OPEN(PrgKonfig,Pfad'Programmmanager.txt','W')
CALL WRITECH(PrgKonfig,'')
CALL CLOSE(PrgKonfig)
END

TritonRam = UPPER(SHOWDIR('Ram:Env/','d'))
TritonSys = UPPER(SHOWDIR('Sys:Prefs/Env-Archive/','d'))
PositionRam = POS('TRITON',TritonRam)
PositionSys = POS('TRITON',TritonSys)
IF (PositionRam = '0') THEN MAKEDIR('Ram:ENV/Triton')
IF (PositionSys = '0') THEN MAKEDIR('Sys:Prefs/Env-Archive/Triton')


IF ~EXISTS(Pfad'PrgManager.config') THEN DO
Con1 = '20';Con2 = '20';Con3 = '620';Con4 = '300';FensterTitel = 'ProgrammManager_Ausgabefenster'
ProgrammTypName = 'Alle';Icon = '0'
device = 'Ram:';Pubscreen = 'Workbench';HilfeStartNr = '0'
Schrift.ta_name = 'topaz.font';Schrift.ta_ysize = '8';Schrift.ta_style = '0'
TextEdPfad = 'Sys:C';TextEdName = 'ED %f WINDOW CON:////Editor/CLOSE/SCREEN%s'
HexEdPfad = 'Sys:C';HexEdName = 'KeinHexED'
FarbenFenster = 'TRWI_Backfill TRBF_SHINE_FILL';FarbeGruppe = 'TRAT_Backfill TRBF_FILL_BACKGROUND'
CALL Konfigliste
SchreibeKonfig1 = WRITEFILE(Pfad'PrgManager.config','Konfigliste')
END

LeseKonfig = READFILE(Pfad'PrgManager.config','Konfigeintrage')
LeseHilfe = READFILE(Pfad'PrgManager.OnlineHilfe','Satz')

Con1 = WORD(Konfigeintrage.1,1)
Con2 = WORD(Konfigeintrage.1,2)
Con3 = WORD(Konfigeintrage.1,3)
Con4 = WORD(Konfigeintrage.1,4)
ZCon1 = LENGTH(Con1)
ZCon2 = LENGTH(Con2)
ZCon3 = LENGTH(Con3)
ZCon4 = LENGTH(Con4)

GesCon = ZCon1+ZCon2+ZCon3+ZCon4+5

FensterTitel = SUBSTR(Konfigeintrage.1,GesCon)

ProgrammTypName = WORD(Konfigeintrage.2,1)
Icon = WORD(Konfigeintrage.2,2)
device = WORD(Konfigeintrage.3,1)
Pubscreen = WORD(Konfigeintrage.3,2)
HilfeStartNr = WORD(Konfigeintrage.3,3)
Schrift.ta_name = WORD(Konfigeintrage.4,1) 
Schrift.ta_ysize = WORD(Konfigeintrage.4,2)
Schrift.ta_style = WORD(Konfigeintrage.4,3)
TextEdPfad = WORD(Konfigeintrage.5,1)
TextEdPfadLang = LENGTH(TextEdPfad)
TextEdName = SUBSTR(Konfigeintrage.5,TextEdPfadLang+2)
HexEdPfad = WORD(Konfigeintrage.6,1)
HexEdPfadLang = LENGTH(HexEdPfad)
HexEdName = SUBSTR(Konfigeintrage.6,HexEdPfadLang+2)
IF Icon = '0' THEN StarticonName = 'nicht iconifiziert'
IF Icon = '1' THEN StarticonName = 'iconifiziert'
FarbenFenster = Konfigeintrage.7
FarbeGruppe = Konfigeintrage.8

CALL PUBSCREENTOFRONT(Pubscreen)

Aktiv = 'TRWI_Flags TRWF_NOACTIVATE'

IF (Icon = '1') THEN DO
Iconmerker = 'Ein'
SIGNAL iconif
END

Start:

IF (FarbenFenster = 'KONFIGEINTRAGE.7') THEN FarbenFenster = 'TRWI_Backfill TRBF_SHINE_FILL'
IF (FarbeGruppe = 'KONFIGEINTRAGE.8') THEN FarbeGruppe = 'TRAT_Backfill TRBF_FILL_BACKGROUND'

Schrift.0 = '3'
Schrift.ta_name = Schrift.ta_name
Schrift.ta_ysize = Schrift.ta_ysize
Schrift.ta_style = Schrift.ta_style

Schriftlaenge = LENGTH(Schrift.ta_name)
SchriftLang = Schriftlaenge-5
SchriftName = SUBSTR(Schrift.ta_name,1,SchriftLang)

Programmstartname = ProgrammTypName

Hilfe.0 = '2'
Hilfe.1 = 'Ein'
Hilfe.2 = 'Aus'

IF HilfeStartNr = '0' THEN HilfeName = 'Ein'
IF HilfeStartNr = '1' THEN HilfeName = 'Aus' 

IF Programmstartname = 'Alle' THEN ProgStartNr = '0'
IF Programmstartname = 'Programm' THEN ProgStartNr = '1'
IF Programmstartname = 'ARexx' THEN ProgStartNr = '2'
IF Programmstartname = 'Script' THEN ProgStartNr = '3'
IF Programmstartname = 'Guide' THEN ProgStartNr = '4'

ProgrammTyp.0 = '5'
ProgrammTyp.1 = 'Alle'
ProgrammTyp.2 = 'Programm'
ProgrammTyp.3 = 'ARexx'
ProgrammTyp.4 = 'Script'
ProgrammTyp.5 = 'Guide'

Starticon.0 = '2'
Starticon.1 = 'nicht iconifiziert'
Starticon.2 = 'iconifiziert'

CALL LeseKonfiguration

IF (ProgStartNr = '0') THEN DO
Listen = 'List'
Listenzahl = List.0
Auswahl = '0'
END

IF (ProgStartNr = '1') THEN DO
Listen = 'ListNormal'
Listenzahl = ListNormal.0
Auswahl = '1'
END

IF (ProgStartNr = '2') THEN DO
Listen = 'ListRexx'
Listenzahl = ListRexx.0
Auswahl = '2'
END

IF (ProgStartNr = '3') THEN DO
Listen = 'ListScript'
Listenzahl = ListScript.0
Auswahl = '3'
END

IF (ProgStartNr = '4') THEN DO
Listen = 'ListGuide'
Listenzahl = ListGuide.0
Auswahl = '4'
END

IF (HilfeStartNr = '0') THEN DO
HilfeName = 'Ein'
HelpMe = QuickHelpOn('1')
END
IF (HilfeStartNr = '1') THEN DO
HilfeName = 'Aus'
HelpMe = QuickHelpOn('0')
END

/*
BoopsiImageD('Pic',155,47) 'Space',
BoopsiImageD('Pic',IMAGEWIDTH('Pic'),IMAGEHEIGHT('Pic')) 'Space',
*/

Flags = 'WindowFlags('TRWF_NODRAGBAR')'

ver = 'v2.2'

imageflags = 'TRXIF_CENTER|TRXIF_SCALE|TRXIF_PROP'
CALL CREATEIMAGE('Pic',Bild,'TRXIM_PubScreenName' Pubscreen 'TRXIM_Flags' imageflags)

Defaultapp =  TR_CREATEAPP('TRCA_Name "ProgrammManager"',
       'TRCA_LongName "Programmmanager 'ver' ©1998 by Reinhard Steinert"',
       'TRCA_Info     "Programmstart easy"',
       'TRCA_Version  "'ver'" ',
       'TRCA_Release  "2"',
       'TRCA_Date     "21.12.1998"',
       'TAG_END')

Hauptfenster:

windowtags1 =   WindowID(1),
WindowPosition('TRWP_CENTERSCREEN') HelpMe FarbenFenster 'TRWI_PropFontAttr' Schrift PubScreenName(Pubscreen) WindowTitle('Programmmanager       ©R.Steinert'),
BeginMenu('Projekt') MenuItem('H_Programmeintrag hinzufügen',2) MenuItem('L_Programmeintrag löschen',3) MenuItem('N_Programmeintrag ändern',4) ItemBarlabel MenuItem('I_Iconifizieren',8) ItemBarlabel,
MenuItem('S_Programm starten',5) ItemBarlabel,
MenuItem('A_Über das Programm',9) MenuItem('B_Programm beenden',6),
BeginMenu('Dateioperationen') MenuItem('C_Schutzbits',12) MenuItem('D_Dateikommentar',13),
ItemBarlabel MenuItem('T_Text-Editor',19) MenuItem('X_Hex-Editor',20),
BeginMenu('Einstellungen') MenuItem('E_Allgemeine Einstellungen',18) MenuItem('F_Farb Einstellungen',22) ItemBarlabel,
MenuItem('W_Fensterposition speichern',7) MenuItem('P_Programmeinträge speichern',14),
'HorizGroupAC' 'Space' 'VertGroupAC' 'Space',
NamedFrameBox('Programmauswahl') FarbeGruppe,
'HorizGroupAC' 'Space' 'VertGroupAC' 'Space' 'Space',
'HorizGroupAC',
CycleGadget('ProgrammTyp',ProgStartNr,15) QuickHelp(Satz.1''CR''Satz.2) 'Space',
ClippedTextBoxMW('',17,3) ClippedTextBoxMW(Listenzahl,16,3) 'EndGroup',
'Space' ListSS(Listen,1,0,-1) QuickHelp(Satz.3''CR''Satz.4) 'Space',
ClippedTextBox('',10) 'Space',
'HorizGroupAC' Button('_Starten',5) QuickHelp(Satz.10) Button('_Löschen',3) QuickHelp(Satz.8) 'EndGroup',
'EndGroup' 'Space' 'EndGroup' 'Space' 'EndGroup',
'HorizGroupAC' 'Space' 'VertGroupAC' 'Space',
NamedFrameBox('Optionen') FarbeGruppe,
'HorizGroupAC' 'Space' 'VertGroupAC' 'Space' 'Space',
Button('_Hinzufügen',2) QuickHelp(Satz.5''CR''Satz.6''CR''Satz.7) 'Space' Text3('Drop Icon'),
DropBox(21) QuickHelp(Satz.64''CR''Satz.65''CR''Satz.66''CR''Satz.67) 'Space' 'Space',
Button('Ä_ndern',4) QuickHelp(Satz.9) 'Space',
BoopsiImageD('Pic',IMAGEWIDTH('Pic'),IMAGEHEIGHT('Pic')) 'TRAT_Flags' 'TRIM_BOOPSI' 'Space',
Button('S_chutzbits',12) QuickHelp(Satz.11),
Button('_Kommentar',13) QuickHelp(Satz.12),
Button('_Iconifiy',8) QuickHelp(Satz.13) 'Space',
Button('_Beenden',6) QuickHelp(Satz.14) 'Space',
'EndGroup' 'Space' 'EndGroup' 'Space',
'EndGroup' 'Space' 'EndGroup' 'EndGroup',
EndProject

app = Defaultapp
IF app ~= '00000000'x THEN DO
window = TR_OPENPROJECT( app ,windowtags1)
IF window ~= '00000000'x THEN DO
ende = 0
DO WHILE ende ~= 1
CALL TR_WAIT(app,'')

IF (PubScreenSchalter = 'Ein') THEN CALL GebeAttribute

DO WHILE TR_HANDLEMSG(app,'event')

IF event.trm_class = 'TRMS_NEWVALUE' THEN DO

SELECT

WHEN event.trm_id = 1 THEN DO
ProgrammNr = event.trm_data+1
CALL TR_SETATTRIBUTE(window,17,'TRAT_Text',ProgrammNr)
IF (Auswahl = '0') THEN Filename = List.ProgrammNr
IF (Auswahl = '1') THEN Filename = ListNormal.ProgrammNr
IF (Auswahl = '2') THEN Filename = ListRexx.ProgrammNr
IF (Auswahl = '3') THEN Filename = ListScript.ProgrammNr
IF (Auswahl = '4') THEN Filename = ListGuide.ProgrammNr
IF (Auswahl = '0') THEN Stack = Stack.ProgrammNr
IF (Auswahl = '1') THEN Stack = StackNormal.ProgrammNr
IF (Auswahl = '2') THEN Stack = StackRexx.ProgrammNr
IF (Auswahl = '3') THEN Stack = StackScript.ProgrammNr
IF (Auswahl = '4') THEN Stack = StackGuide.ProgrammNr
IF (Auswahl = '0') THEN PrgStart = PrgStart.ProgrammNr
IF (Auswahl = '1') THEN PrgStart = PrgStartNormal.ProgrammNr
IF (Auswahl = '2') THEN PrgStart = PrgStartRexx.ProgrammNr
IF (Auswahl = '3') THEN PrgStart = PrgStartScript.ProgrammNr
IF (Auswahl = '4') THEN PrgStart = PrgStartGuide.ProgrammNr
IF (Auswahl = '0') THEN Con = Con.ProgrammNr
IF (Auswahl = '1') THEN Con = ConNormal.ProgrammNr
IF (Auswahl = '2') THEN Con = ConRexx.ProgrammNr
IF (Auswahl = '3') THEN Con = ConScript.ProgrammNr
IF (Auswahl = '4') THEN Con = ConGuide.ProgrammNr
IF (Auswahl = '0') THEN ZeileR = Zeile.ProgrammNr
IF (Auswahl = '1') THEN ZeileR = NormalPrg.ProgrammNr
IF (Auswahl = '2') THEN ZeileR = RexxPrg.ProgrammNr
IF (Auswahl = '3') THEN ZeileR = ScriptPrg.ProgrammNr
IF (Auswahl = '4') THEN ZeileR = GuidePrg.ProgrammNr
CALL TR_SETATTRIBUTE(window,10,'TRAT_Text',Filename)
CALL SucheArgumente
END

WHEN event.trm_id = 15 THEN DO
Auswahl = event.trm_data
IF (Auswahl = '1') THEN DO
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','ListNormal')
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListNormal.0)
CALL TR_SETATTRIBUTE(window,1,'TRAT_Value',-1)
CALL TR_SETATTRIBUTE(window,17,'TRAT_Text','')
END
IF (Auswahl = '0') THEN DO
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','List')
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',List.0)
CALL TR_SETATTRIBUTE(window,1,'TRAT_Value',-1)
CALL TR_SETATTRIBUTE(window,17,'TRAT_Text','')
END
IF (Auswahl = '2') THEN DO
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','ListRexx')
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListRexx.0)
CALL TR_SETATTRIBUTE(window,1,'TRAT_Value',-1)
CALL TR_SETATTRIBUTE(window,17,'TRAT_Text','')
END
IF (Auswahl = '3') THEN DO
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','ListScript')
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListScript.0)
CALL TR_SETATTRIBUTE(window,1,'TRAT_Value',-1)
CALL TR_SETATTRIBUTE(window,17,'TRAT_Text','')
END
IF (Auswahl = '4') THEN DO
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','ListGuide')
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListGuide.0)
CALL TR_SETATTRIBUTE(window,1,'TRAT_Value',-1)
CALL TR_SETATTRIBUTE(window,17,'TRAT_Text','')
END
CALL TR_SETATTRIBUTE(window,10,'TRAT_Text','')
DROP ChangeMerker;Drop PrgStart;Drop Con;DROP Argumente;DROP Filepfad;DROP Filename
END

OTHERWISE;NOP
END
END

IF event.trm_class = 'TRMS_ICONDROPPED' THEN DO
SELECT
WHEN event.trm_id = 21 THEN CALL AddWithDrop
OTHERWISE
NOP
END
END

IF event.trm_class = 'TRMS_ACTION' THEN DO
IF event.trm_id = 2 THEN CALL Zufuegen
IF event.trm_id = 3 THEN CALL loeschen
IF event.trm_id = 4 THEN DO
PrgStartAlt = PrgStart
CALL Aendern
END
IF event.trm_id = 5 THEN CALL Starten
IF event.trm_id = 6 THEN DO
IF (BenutzerMerker = 'Ein') THEN DO
NichtGesichert = TR_EASYREQUEST(app,' Die Einträge wurden geändert ! ','_Beenden|_Speichern|_Abbruch','TREZ_LockProject' C2D(window) 'TAG_END')
IF NichtGesichert = 1 THEN ende = 1
IF NichtGesichert = 0 THEN NOP
IF NichtGesichert = 2 THEN DO
SchreibKonN = WRITEFILE(Pfad'Programmmanager.txt','Zeile')
ende = 1
END
END
IF ~(BenutzerMerker = 'Ein') THEN ende = 1

END

IF event.trm_id = 7 THEN CALL Fenster
IF event.trm_id = 8 THEN CALL iconify
IF event.trm_id = 9 THEN CALL About
IF event.trm_id = 12 THEN CALL Schutz
IF event.trm_id = 13 THEN CALL Kommentar
IF event.trm_id = 18 THEN CALL Einstellungen
IF event.trm_id = 22 THEN CALL Farbeinstellung

IF event.trm_id = 14 THEN DO
IF ~(BenutzerMerker = 'Ein') THEN  NichtsAnders = TR_EASYREQUEST(app,' Es wurden keine Einträge geändert ! ',_OK,'TREZ_LockProject' C2D(window) 'TAG_END')
 IF (BenutzerMerker = 'Ein') THEN DO
 SchreibKonN = WRITEFILE(Pfad'Programmmanager.txt','Zeile')
 DROP BenutzerMerker
 END
END

IF event.trm_id = 19 THEN DO
IF (Filename = 'FILENAME') THEN EdText = TR_EASYREQUEST(app,' Du musst zuerst ein Programm auswählen ! ','_Das klingt logisch','TREZ_LockProject' C2D(window) 'TAG_END')
IF (EdText = 'EDTEXT') THEN 'RUN >NIL: 'TextEdPfad'/'TextEdName' 'Filepfad
IF (EdText = '0') THEN DROP EdText
END

IF event.trm_id = 20 THEN DO
IF (Filename = 'FILENAME') THEN EdHex = TR_EASYREQUEST(app,' Du musst zuerst ein Programm auswählen ! ','_Das klingt logisch','TREZ_LockProject' C2D(window) 'TAG_END')
IF (EdHex = 'EDHEX') THEN 'RUN >NIL: 'HexEdPfad'/'HexEdName' 'Filepfad
IF (EdHex = '0') THEN DROP EdHex
END


END

IF event.trm_class = 'TRMS_CLOSEWINDOW' THEN DO
IF (BenutzerMerker = 'Ein') THEN DO
NichtGesichert = TR_EASYREQUEST(app,' Die Einträge wurden geändert !','_Beenden|_Speichern|_Abbruch','TREZ_LockProject' C2D(window) 'TAG_END')
IF NichtGesichert = 1 THEN ende = 1
IF NichtGesichert = 0 THEN NOP
IF NichtGesichert = 2 THEN DO
SchreibKonN = WRITEFILE(Pfad'Programmmanager.txt','Zeile')
ende = 1
CALL DeleteImage('Pic')
END
END
IF ~(BenutzerMerker = 'Ein') THEN ende = 1
END
END
END
CALL TR_CLOSEPROJECT(window)
END
CALL TR_DELETEAPP(app)
CALL DeleteImage('Pic')
END

EXIT


Zufuegen:
ChangeMerker = '0'
Change:

CALL TR_LOCKPROJECT(window)

windowtags = WindowID(2),
WindowPosition('TRWP_CENTERSCREEN') HelpMe FarbenFenster 'TRWI_PropFontAttr' Schrift PubScreenName(Pubscreen) WindowTitle('Füge ein/ändern eines Programmes:             '),
'HorizGroupAC' 'Space' 'VertGroupAC' 'Space',
GroupBox FarbeGruppe,
'HorizGroupAC' 'Space' 'VertGroupAC' 'Space',
NamedSeparator(' Programmdaten ') 'Space' 'Space',
'HorizGroupA',
GetFileButton(5) QuickHelp(Satz.32''CR''Satz.33) 'Space' StringGadget('',1) 'TRAT_Value 1024' 'EndGroup' 'Space',
'HorizGroupAC',
TextN('Programmeintrag:') 'Space' StringGadget('',6) QuickHelp(Satz.34''CR''Satz.35) 'EndGroup',
'VertGroupAC' 'Space' 'Space' 'HorizGroupAC',
TextN('Stack:') 'Space' StringGadget('',7) QuickHelp(Satz.36''CR''Satz.37),
'Space' 'Space' TextID('A_Rexx:',8) 'Space' CheckBox(8) QuickHelp(Satz.38''CR''Satz.39''CR''Satz.40),
'Space' TextID('Scr_ipt:',9) 'Space' CheckBox(9) QuickHelp(Satz.41''CR''Satz.39''CR''Satz.40),
'Space' TextID('_Guide:',12) 'Space' CheckBox(12) QuickHelp(Satz.42''CR''Satz.39''CR''Satz.40),
'Space' TextID('_Con:',10) 'Space',
CheckBox(10) QuickHelp(Satz.43''CR''Satz.44''CR''Satz.45''CR''Satz.46) 'Space' 'EndGroup',
'VertGroupAC' 'Space' 'Space' 'Space',
NamedSeparator(' Argumente für den Programmaufruf ') 'Space',
StringGadget('',2) 'TRAT_Value 1024' QuickHelp(Satz.62''CR''Satz.63) 'Space' 'Space' 'Space',
'HorizGroupAC' Button('_Speichern',3) QuickHelp(Satz.47),
'Space' Button('_Benützen',11) QuickHelp(Satz.48) 'Space',
Button('_Abbrechen',4) QuickHelp(Satz.49) 'EndGroup',
'Space' 'EndGroup' 'EndGroup' 'EndGroup' 'Space' 'EndGroup',
'VertGroupSA Space EndGroup',
'EndGroup' 'Space' 'EndGroup',
'EndProject'

appl = Defaultapp
window2 = TR_OPENPROJECT(appl,windowtags)
IF window2 ~= '00000000'x THEN DO
endF = 0

IF (ChangeMerker = '0') THEN DO
DROP Argumente;DROP Filepfad;DROP Filename
Geti = ASL_REQUESTFILE(window2, 'file', LoadFile('Neuer Programmeintrag','Fertig',device,'') 'ASLFR_PubScreenName' Pubscreen)

IF geti = 1 THEN DO
Filepfad = file.1

CALL TesteInfo

PosFilePath = LASTPOS('/',Filepfad)

IF (PosFilePath >= '1') THEN DO
ZieheAb = PosFilePath+1
Filename = SUBSTR(Filepfad,ZieheAb)
END

IF (PosFilePath = '0') THEN DO
PosFilePathN = LASTPOS(':',Filepfad)
Filename = DELSTR(Filepfad,1,PosFilePathN)
END

CALL TR_SETATTRIBUTE(window2,1,'TROB_String', Filepfad)
CALL TR_SETATTRIBUTE(window2,6,'TROB_String', Filename)
CALL TR_SETATTRIBUTE(window2,7,'TROB_String', Stack)
CALL TR_SETATTRIBUTE(window2,10,'TRAT_Disabled','1')
CALL TR_SETATTRIBUTE(window2, 2,'TROB_String', Argumente)

IF (Auswahl = '2') THEN DO
CALL TR_SETATTRIBUTE(window2,10,'TRAT_Disabled','0')
CALL TR_SETATTRIBUTE(window2,8,'TRAT_Value','1')
CALL TR_SETATTRIBUTE(window2,9,'TRAT_Disabled','1')
CALL TR_SETATTRIBUTE(window2,12,'TRAT_Disabled','1')
PrgStart = '1'
END
IF (Auswahl = '3') THEN DO
CALL TR_SETATTRIBUTE(window2,10,'TRAT_Disabled','0')
CALL TR_SETATTRIBUTE(window2,9,'TRAT_Value','1')
CALL TR_SETATTRIBUTE(window2,8,'TRAT_Disabled','1')
CALL TR_SETATTRIBUTE(window2,12,'TRAT_Disabled','1')
PrgStart = '2'
END
IF (Auswahl = '4') THEN DO
CALL TR_SETATTRIBUTE(window2,8,'TRAT_Disabled','1')
CALL TR_SETATTRIBUTE(window2,9,'TRAT_Disabled','1')
CALL TR_SETATTRIBUTE(window2,12,'TRAT_Value','1')
CALL TR_SETATTRIBUTE(window2,10,'TRAT_Value','0')
PrgStart = '3'
END

END
END

IF (ChangeMerker = '1') THEN DO

CALL SucheArgumente

IF Con = 1 THEN CALL TR_SETATTRIBUTE(window2,10,'TRAT_Value','1')

CALL TR_SETATTRIBUTE(window2, 6,'TROB_String', Filename)
CALL TR_SETATTRIBUTE(window2, 1,'TROB_String', Filepfad)
CALL TR_SETATTRIBUTE(window2, 2,'TROB_String', Argumente)
CALL TR_SETATTRIBUTE(window2, 7,'TROB_String', Stack)

IF (PrgStart = '1') THEN DO
CALL TR_SETATTRIBUTE(window2,8,'TRAT_Value','1')
CALL TR_SETATTRIBUTE(window2,9,'TRAT_Disabled','1')
CALL TR_SETATTRIBUTE(window2,12,'TRAT_Disabled','1')
END

IF (PrgStart = '2') THEN DO
CALL TR_SETATTRIBUTE(window2,9,'TRAT_Value','1')
CALL TR_SETATTRIBUTE(window2,8,'TRAT_Disabled','1')
CALL TR_SETATTRIBUTE(window2,12,'TRAT_Disabled','1')
END

IF (PrgStart = '3') THEN DO
CALL TR_SETATTRIBUTE(window2,12,'TRAT_Value','1')
CALL TR_SETATTRIBUTE(window2,8,'TRAT_Disabled','1')
CALL TR_SETATTRIBUTE(window2,9,'TRAT_Disabled','1')
END

IF (PrgStart = '0')&(Con = '0')|(PrgStart = '3') THEN CALL TR_SETATTRIBUTE(window2,10,'TRAT_Disabled','1')
END


DO WHILE endF ~= 1
CALL TR_WAIT(appl,'')
DO WHILE TR_HANDLEMSG(appl,'eventl')

IF eventl.trm_class = 'TRMS_NEWVALUE' THEN DO

SELECT
WHEN eventl.trm_id = 1 THEN Filepfad = TR_GETATTRIBUTE(window2,1,'TROB_String')
WHEN eventl.trm_id = 2 THEN Argumente = TR_GETATTRIBUTE(window2,2,'TROB_String')
WHEN eventl.trm_id = 6 THEN Filename = TR_GETATTRIBUTE(window2,6,'TROB_String')
WHEN eventl.trm_id = 7 THEN Stack = TR_GETATTRIBUTE(window2,7,'TROB_String')
WHEN eventl.trm_id = 8 THEN DO
Rexx = eventl.trm_data
IF (Rexx = '0') THEN DO
PrgStart = 0
CALL TR_SETATTRIBUTE(window2,9,'TRAT_Disabled','0')
CALL TR_SETATTRIBUTE(window2,10,'TRAT_Disabled','1')
CALL TR_SETATTRIBUTE(window2,10,'TRAT_Value','0')
CALL TR_SETATTRIBUTE(window2,12,'TRAT_Disabled','0')
END
IF (Rexx = '1') THEN DO
PrgStart = 1
CALL TR_SETATTRIBUTE(window2,10,'TRAT_Disabled','0')
CALL TR_SETATTRIBUTE(window2,9,'TRAT_Disabled','1')
CALL TR_SETATTRIBUTE(window2,12,'TRAT_Disabled','1')
END
END

WHEN eventl.trm_id = 9 THEN DO
Script = eventl.trm_data
IF (Script = '0') THEN DO
PrgStart = 0
CALL TR_SETATTRIBUTE(window2,10,'TRAT_Disabled','1')
CALL TR_SETATTRIBUTE(window2,8,'TRAT_Disabled','0')
CALL TR_SETATTRIBUTE(window2,10,'TRAT_Value','0')
CALL TR_SETATTRIBUTE(window2,12,'TRAT_Disabled','0')
END
IF (Script = '1') THEN DO
PrgStart = 2
CALL TR_SETATTRIBUTE(window2,10,'TRAT_Disabled','0')
CALL TR_SETATTRIBUTE(window2,8,'TRAT_Disabled','1')
CALL TR_SETATTRIBUTE(window2,12,'TRAT_Disabled','1')
END
END

WHEN eventl.trm_id = 12 THEN DO
Guide = eventl.trm_data
IF (Guide = '0') THEN DO
PrgStart = 0
CALL TR_SETATTRIBUTE(window2,8,'TRAT_Disabled','0')
CALL TR_SETATTRIBUTE(window2,9,'TRAT_Disabled','0')
END
IF (Guide = '1') THEN DO
PrgStart = 3
CALL TR_SETATTRIBUTE(window2,8,'TRAT_Disabled','1')
CALL TR_SETATTRIBUTE(window2,9,'TRAT_Disabled','1')
END
END

WHEN eventl.trm_id = 10 THEN Con = eventl.trm_data
OTHERWISE;NOP
END
END

IF eventl.trm_class = 'TRMS_ACTION' THEN DO
IF eventl.trm_id = 3 THEN DO
IF (Filepfad = 'FILEPFAD')|(Filename = 'FILENAME')|(Filepfad = '')|(Filename = '') THEN endF = 1
IF ~(Filepfad = 'FILEPFAD')&~(Filename = 'FILENAME')&~(Filepfad = '')&~(Filename = '') THEN DO
CALL Speichern
CALL TR_UNLOCKPROJECT(window)
DROP ChangeMerker;Drop PrgStart;Drop Con;DROP Argumente;DROP Filepfad;DROP Filename
endF = 1
END
END

IF eventl.trm_id = 4 THEN DO
endF = 1
CALL TR_UNLOCKPROJECT(window)
END

IF eventl.trm_id = 5 THEN CALL Filereq

IF eventl.trm_id = 11 THEN DO
CALL UseIt
CALL TR_UNLOCKPROJECT(window)
endF = 1
END
END
IF eventl.trm_class = 'TRMS_CLOSEWINDOW' THEN DO
CALL TR_UNLOCKPROJECT(window)
endF = 1
END
END
END
CALL TR_CLOSEPROJECT(window2)
END
RETURN

Speichern:

Speichermerker = 'Ein'
IF ~(AenderMerker = 'Ein') THEN CALL UseIt
IF (AenderMerker = 'Ein') THEN Signal Aendern
EtzSpeichern:
SchreibKonN = WRITEFILE(Pfad'Programmmanager.txt','Zeile')
DROP AenderMerker;DROP BenutzerMerker;DROP ChangeMerker;Drop PrgStart
Drop Con;DROP Argumente;DROP Filepfad;DROP Filename;DROP Speichermerker
RETURN


loeschen:

FilenameAlt = Filename
IF (Filename = 'FILENAME') THEN DO
CALL TR_EASYREQUEST(app,' Du musst zuerst ein Programm auswählen ! ','_Das klingt logisch','TREZ_LockProject' C2D(window) 'TAG_END')
RETURN
END

Wirklich = TR_EASYREQUEST(app,' Willst Du diesen Eintrag wirklich löschen !',' _Ja | _Nein ','TREZ_LockProject' C2D(window) 'TAG_END')
IF (Wirklich = '0') THEN RETURN

JaLoesch:

IF (Auswahl = '0') THEN DO
IF (PrgStart = '0') THEN DO
SucheNormal = LSEARCH(Zeile.ProgrammNr,'NormalPrg')
WegNormal = STEMREMOVE('NormalPrg',SucheNormal)
WegListNormal = STEMREMOVE('ListNormal',SucheNormal)
CALL InitialListFenster
END
IF (PrgStart = '1') THEN DO
SucheRexx = LSEARCH(Zeile.ProgrammNr,'RexxPrg')
WegRexx = STEMREMOVE('RexxPrg',SucheRexx)
WegListRexx = STEMREMOVE('ListRexx',SucheRexx)
CALL InitialListFenster
END
IF (PrgStart = '2') THEN DO
SucheScript = LSEARCH(Zeile.ProgrammNr,'ScriptPrg')
WegScript = STEMREMOVE('ScriptPrg',SucheScript)
WegListScript = STEMREMOVE('ListScript',SucheScript)
CALL InitialListFenster
END
IF (PrgStart = '3') THEN DO
SucheGuide = LSEARCH(Zeile.ProgrammNr,'GuidePrg')
WegGuide = STEMREMOVE('GuidePrg',SucheGuide)
WegListGuide = STEMREMOVE('ListGuide',SucheGuide)
CALL InitialListFenster
END
WegDamit = STEMREMOVE('Zeile',ProgrammNr)
CALL InitZeile
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','List')
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',List.0)
END

IF ~(Auswahl = '0') THEN DO
IF (Auswahl = '1') THEN DO
Suche = LSEARCH(NormalPrg.ProgrammNr,'Zeile')
RemoveNprg = STEMREMOVE('NormalPrg',ProgrammNr)
WegZeile = STEMREMOVE('Zeile',Suche)
CALL InitZeile
CALL InitialListFenster
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','ListNormal')
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListNormal.0)
END
IF (Auswahl = '2') THEN DO
Suche = LSEARCH(RexxPrg.ProgrammNr,'Zeile')
RemoveRexx = STEMREMOVE('RexxPrg',ProgrammNr)
WegZeile = STEMREMOVE('Zeile',Suche)
CALL InitZeile
CALL InitialListFenster
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','ListRexx')
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListRexx.0)
END
IF (Auswahl = '3') THEN DO
Suche = LSEARCH(ScriptPrg.ProgrammNr,'Zeile')
RemoveScript = STEMREMOVE('ScriptPrg',ProgrammNr)
WegZeile = STEMREMOVE('Zeile',Suche)
CALL InitZeile
CALL InitialListFenster
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','ListScript')
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListScript.0)
END
IF (Auswahl = '4') THEN DO
Suche = LSEARCH(GuidePrg.ProgrammNr,'Zeile')
RemoveGuide = STEMREMOVE('GuidePrg',ProgrammNr)
WegZeile = STEMREMOVE('Zeile',Suche)
CALL InitZeile
CALL InitialListFenster
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','ListGuide')
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListGuide.0)
END
END

CALL TR_SETATTRIBUTE(window,1,'TRAT_Value',-1)
CALL TR_SETATTRIBUTE(window,17,'TRAT_Text','')
CALL TR_SETATTRIBUTE(window,10,'TRAT_Text','')

IF (Zeile.0 = '0') THEN DO
CALL Open(PrgKonfig,Pfad'Programmmanager.txt','W')
CALL WRITECH(PrgKonfig,'')
CALL Close(PrgKonfig)
DROP ChangeMerker;Drop PrgStart;Drop Con;DROP Argumente;DROP Filepfad;DROP Filename
RETURN
END

SchreibKon = WRITEFILE(Pfad'Programmmanager.txt','Zeile')
DROP ChangeMerker;Drop PrgStart;Drop Con;DROP Argumente;DROP Filepfad;DROP Filename
RETURN

InitZeile:
DO i = 1 TO Zeile.0
List.i = WORD(Zeile.i,1)
Stack.i = WORD(Zeile.i,2)
Con.i = WORD(Zeile.i,3)
PrgStart.i = WORD(Zeile.i,4)
END
List.0 = Zeile.0
RETURN


Starten:

IF (Filename = 'FILENAME') THEN DO
CALL TR_EASYREQUEST(app,' Du musst zuerst ein Programm auswählen ! ','_Das klingt logisch','TREZ_LockProject' C2D(window) 'TAG_END')
RETURN
END

IF (PrgStart = '3') THEN DO
IF (Stack >= '4097') THEN DO
ScriptZeile.0 = '2'
ScriptZeile.1 = 'Stack 'Stack
ScriptZeile.2 = 'RUN >NIL: AmigaGuide Screen='PubScreen' 'Filepfad
Ausfuehren = WRITEFILE('t:Laufe','ScriptZeile')
'RUN >NIL: Execute T:Laufe'
RETURN
END
'RUN >NIL: AmigaGuide Screen='PubScreen' 'Filepfad
RETURN
END

IF (Con = '1')&(PrgStart = '2') THEN DO
IF (Stack >= '4097') THEN DO
ScriptZeile.0 = '2'
ScriptZeile.1 = 'Stack 'Stack
ScriptZeile.2 = STRIP('RUN >NIL: NewShell con:'Con1'/'Con2'/'Con3'/'Con4'/'FensterTitel'/AUTO/CLOSE/SIMPLE/SCREEN'PubScreen' FROM 'Filepfad' 'Argumente)
Ausfuehren = WRITEFILE('t:Laufe','ScriptZeile')
'RUN >NIL: EXECUTE T:Laufe'
RETURN
END
'RUN >NIL: NewShell con:'Con1'/'Con2'/'Con3'/'Con4'/'FensterTitel'/AUTO/CLOSE/SIMPLE/SCREEN'PubScreen' 'Filepfad' 'Argumente
RETURN
END

IF (Con = '0')&(PrgStart = '2') THEN DO
IF (Stack >= '4097') THEN DO
ScriptZeile.0 = '2'
ScriptZeile.1 = 'Stack 'Stack
ScriptZeile.2 = STRIP('RUN >NIL: EXECUTE 'Filepfad' 'Argumente)
Ausfuehren = WRITEFILE('t:Laufe','ScriptZeile')
'RUN >NIL: Execute t:Laufe'
RETURN
END
'RUN >NIL: Execute 'Filepfad' 'Argumente
RETURN
END


IF (Con = '0')&(PrgStart = '1') THEN DO
IF (Stack >= '4097') THEN DO
'RUN >NIL: RX 'Filepfad' 'Argumente
CALL TR_SETATTRIBUTE(window,0,'TRWI_Flags','TRWF_NOACTIVATE')
RETURN('')
END
'RUN >NIL: RX 'Filepfad' 'Argumente

CALL TR_SETATTRIBUTE(window,0,'TRWI_Flags','TRWF_NOACTIVATE')

RETURN
END

IF (Con = '1')&(PrgStart = '1') THEN DO
'run SYS:RexxC/RX <>CON:'Con1'/'Con2'/'Con3'/'Con4'/ProgrammManager_ARexxkonsole/SIMPLE/SCREEN'PubScreen' 'Filepfad' 'Argumente

CALL TR_SETATTRIBUTE(window,0,'TRWI_Flags','TRWF_NOACTIVATE')

RETURN

END


IF (PrgStart = '0') THEN DO

Standardprogramm = GETDEFAULTTOOL(Filepfad)
IF ~(Standardprogramm = '') THEN Standard = Standardprogramm' '
IF (Standardprogramm = '') THEN Standard = ''
IF (Standardprogramm = 'JUNK') THEN Standard = ''

IF (Stack >= '4097') THEN DO
ScriptZeile.0 = '2'
ScriptZeile.1 = 'Stack 'Stack
ScriptZeile.2 = STRIP('RUN >NIL: 'Standard''Filepfad' 'Argumente)
Ausfuehren = WRITEFILE('t:Laufe','ScriptZeile')

IF (Standard = '') THEN 'RUN >NIL: Execute T:Laufe'
ELSE
'Run 'Standard''Filepfad' 'Argumente

RETURN
END

IF (Standard = '') THEN 'RUN >NIL: 'Filepfad' 'Argumente
ELSE
'Run 'Standard''Filepfad' 'Argumente

RETURN
END


Aendern:

IF (Filename = 'FILENAME') THEN DO
CALL TR_EASYREQUEST(app,' Du musst zuerst ein Programm auswählen ! ','_Das klingt logisch','TREZ_LockProject' C2D(window) 'TAG_END')
RETURN
END

ChangeMerker = '1'
IF ~(Speichermerker = 'Ein') THEN Signal Change
Zurueck:

IF (Argumente = 'ARGUMENTE') THEN Argumente = ''
Filename = TRANSLATE(Filename,'_',' ')

NeueZeile = Filename'   'Stack'   'Con'   'PrgStart'   'Filepfad' 'Argumente
NeueZeile = STRIP(NeueZeile)

IF (Auswahl = '0') THEN DO

if (PrgStartAlt = '0') THEN DO
Such = LSEARCH(Zeile.ProgrammNr,'NormalPrg')
WegPG = STEMREMOVE('NormalPrg',Such)
END
IF (PrgStartAlt = '1') THEN DO
Such = LSEARCH(Zeile.ProgrammNr,'RexxPrg')
WegPG = STEMREMOVE('RexxPrg',Such)
END
IF (PrgStartAlt = '2') THEN DO
Such = LSEARCH(Zeile.ProgrammNr,'ScriptPrg')
WegPG = STEMREMOVE('ScriptPrg',Such)
END
IF (PrgStartAlt = '3') THEN DO
Such = LSEARCH(Zeile.ProgrammNr,'GuidePrg')
WegPG = STEMREMOVE('GuidePrg',Such)
END
CALL SucheProgrammNeu
Filename.ProgrammNr = Filename
Zeile.ProgrammNr = NeueZeile
WegLi = STEMREMOVE('List',ProgrammNr)
if (List.0 = '0') THEN DO
List.0 = '1'
List.1 = Filename
MerkEs = 'Ein'
END
if ~(MerkEs = 'Ein') THEN NeuL = STEMINSERT('List',1,1,Filename)
if ~(MerkEs = 'Ein') THEN Sorter = QSORT('List',,,'NOCASE',)
WegZ = STEMREMOVE('Zeile',ProgrammNr)
if (Zeile.0 = '0') THEN DO
Zeile.0 = '1'
Zeile.1 = NeueZeile
MerkEs = 'Ein'
END
if ~(MerkEs = 'Ein') THEN NeuZeile = STEMINSERT('Zeile',1,1,NeueZeile)
if ~(MerkEs = 'Ein') THEN Sortes = QSORT('Zeile',,,'NOCASE',)
CALL InitialListFenster
CALL InitZeile
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','List')
DROP MerkEs
END


IF (Auswahl = '1') THEN DO
Such = LSEARCH(NormalPrg.ProgrammNr,'Zeile')
WegZeile = STEMREMOVE('Zeile',Such)
IF (Zeile.0 = '0') THEN DO
Zeile.0 = '1'
Zeile.1 = NeueZeile
MerkEs = 'Ein'
END
IF ~(MerkEs = 'Ein') THEN NewZeile = STEMINSERT('Zeile',1,1,NeueZeile)
IF ~(MerkEs = 'Ein') THEN SorZ = QSORT('Zeile',,,'NOCASE',)
WegListe = STEMREMOVE('List',Such)
if (List.0 = '0') THEN DO
List.0 = '1'
List.1 = Filename
MerkEs = 'Ein'
END
IF ~(MerkEs = 'Ein') THEN NeuListe = STEMINSERT('List',1,1,Filename)
IF ~(MerkEs = 'Ein') THEN SorLi = QSORT('List',,,'NOCASE',)
WegPRG = STEMREMOVE('NormalPrg',ProgrammNr)
CALL SucheProgrammNeu
CALL InitZeile
CALL InitialListFenster
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListNormal.0)
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','ListNormal')
DROP MerkEs
END

IF (Auswahl = '2') THEN DO
Such = LSEARCH(RexxPrg.ProgrammNr,'Zeile')
WegZeile = STEMREMOVE('Zeile',Such)
IF (Zeile.0 = '0') THEN DO
Zeile.0 = '1'
Zeile.1 = NeueZeile
MerkEs = 'Ein'
END
IF ~(MerkEs = 'Ein') THEN NewZeile = STEMINSERT('Zeile',1,1,NeueZeile)
IF ~(MerkEs = 'Ein') THEN SortZeil = QSORT('Zeile',,,'NOCASE',)
WegListe = STEMREMOVE('List',Such)
IF (List.0 = '0') THEN DO
List.0 = '1'
List.1 = Filename
MerkEs = 'Ein'
END
IF ~(MerkEs = 'Ein') THEN NeuListe = STEMINSERT('List',1,1,Filename)
IF ~(MerkEs = 'Ein') THEN SortLis = QSORT('List',,,'NOCASE',)
WegPRG = STEMREMOVE('RexxPrg',ProgrammNr)
CALL SucheProgrammNeu
CALL InitZeile
CALL InitialListFenster
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListRexx.0)
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','ListRexx')
DROP MerkEs
END


if (Auswahl = '3') THEN DO
Such = LSEARCH(ScriptPrg.ProgrammNr,'Zeile')
WegZeile = STEMREMOVE('Zeile',Such)
IF (Zeile.0 = '0') THEN DO
Zeile.0 = '1'
Zeile.1 = NeueZeile
MerkEs = 'Ein'
END       
IF ~(MerkEs = 'Ein') THEN NewZeile = STEMINSERT('Zeile',1,1,NeueZeile)
IF ~(MerkEs = 'Ein') THEN SortZe = QSORT('Zeile',,,'NOCASE',)
WegListe = STEMREMOVE('List',Such)
IF (List.0 = '0') THEN DO
List.0 = '1'
List.1 = Filename
MerkEs = 'Ein'
END
IF ~(MerkEs = 'Ein') THEN NeuListe = STEMINSERT('List',1,1,Filename)
IF ~(MerkEs = 'Ein') THEN SortLi = QSORT('List',,,'NOCASE',)
WegPRG = STEMREMOVE('ScriptPrg',ProgrammNr)
CALL SucheProgrammNeu
CALL InitZeile
CALL InitialListFenster
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListScript.0)
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','ListScript')
DROP MerkEs
END

IF (Auswahl = '4') THEN DO
Such = LSEARCH(GuidePrg.ProgrammNr,'Zeile')
WegZeile = STEMREMOVE('Zeile',Such)
IF Zeile.0 = 0 THEN DO
Zeile.0 = '1'
Zeile.1 = NeueZeile
MerkEs = 'Ein'
END
if ~(MerkEs = 'Ein') THEN NewZeile = STEMINSERT('Zeile',1,1,NeueZeile)
if ~(MerkEs = 'Ein') THEN SorterL = QSORT('Zeile',,,'NOCASE',)
WegListe = STEMREMOVE('List',Such)
IF List.0 = 0 THEN DO
List.0 = '1'
List.1 = Filename
MerkEs = 'Ein'
END
if ~(MerkEs = 'Ein') THEN NeuListe = STEMINSERT('List',1,1,Filename)
if ~(MerkEs = 'Ein') THEN SorterLi = QSORT('List',,,'NOCASE',)
WegPRG = STEMREMOVE('GuidePrg',ProgrammNr)
CALL SucheProgrammNeu
CALL InitZeile
CALL InitialListFenster
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListGuide.0)
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','ListGuide')
DROP MerkEs
END



CALL TR_SETATTRIBUTE(window,1,'TRAT_Value',-1)
CALL TR_SETATTRIBUTE(window,17,'TRAT_Text','')
CALL TR_SETATTRIBUTE(window,10,'TRAT_Text','')

if (Speichermerker = 'Ein') THEN Signal EtzSpeichern

BenutzerMerker = 'Ein'
AenderMerker = 'Ein'
DROP ChangeMerker;Drop PrgStart;Drop Con;DROP Argumente;DROP Filepfad;DROP Filename

RETURN


SucheProgrammNeu:

IF (PrgStart = '0') THEN DO
IF NormalPrg.0 = 0 THEN DO
NormalPrg.0 = '1'
NormalPrg.1 = NeueZeile
MerkEs = 'Ein'
END
IF ~(MerkEs = 'Ein') THEN NeuP = STEMINSERT('NormalPrg',1,1,NeueZeile)
IF ~(MerkEs = 'Ein') THEN Sort = QSORT('NormalPrg',,,'NOCASE',)
END

IF (PrgStart = '1') THEN DO
IF RexxPrg.0 = 0 THEN DO
RexxPrg.0 = '1'
RexxPrg.1 = NeueZeile
MerkEs = 'Ein'
END
IF ~(MerkEs = 'Ein') THEN NeuP = STEMINSERT('RexxPrg',1,1,NeueZeile)
IF ~(MerkEs = 'Ein') THEN Sort = QSORT('RexxPrg',,,'NOCASE',)
END

IF (PrgStart = '2') THEN DO
IF ScriptPrg.0 = 0 THEN DO
ScriptPrg.0 = '1'
ScriptPrg.1 = NeueZeile
MerkEs = 'Ein'
END
IF ~(MerkEs = 'Ein') THEN NeuP = STEMINSERT('ScriptPrg',1,1,NeueZeile)
IF ~(MerkEs = 'Ein') THEN Sort = QSORT('ScriptPrg',,,'NOCASE',)
END

if (PrgStart = '3') THEN DO
IF GuidePrg.0 = 0 THEN DO
GuidePrg.0 = '1'
GuidePrg.1 = NeueZeile
MerkEs = 'Ein'
END
IF ~(MerkEs = 'Ein') THEN NeuP = STEMINSERT('GuidePrg',1,1,NeueZeile)
IF ~(MerkEs = 'Ein') THEN Sort = QSORT('GuidePrg',,,'NOCASE',)
END

DROP MerkEs
RETURN


Filereq:

PosSemi = LASTPOS('/',Filepfad)
IF (PosSemi >= '1') THEN AlterPfad = SUBSTR(Filepfad,1,PosSemi)
IF (PosSemi = '0') THEN DO
PosDoppel = LASTPOS(':',Filepfad)
AlterPfad = SUBSTR(Filepfad,1,PosDoppel)
END

Get = ASL_REQUESTFILE(window2, 'file', LoadFile('Neuer Programmeintrag','Fertig',AlterPfad,'') 'ASLFR_PubScreenName' Pubscreen)

IF get = 1 THEN DO
Filepfad = file.1

CALL TesteInfo

PosFilePath = LASTPOS('/',Filepfad)
IF (PosFilePath >= '1') THEN DO
ZieheAb = PosFilePath+1
Filename = SUBSTR(Filepfad,ZieheAb)
END
IF (PosFilePath = '0') THEN DO
PosFilePathN = LASTPOS(':',Filepfad)
Filename = DELSTR(Filepfad,1,PosFilePathN)
END

CALL TR_SETATTRIBUTE(window2, 1,'TROB_String', Filepfad)
CALL TR_SETATTRIBUTE(window2, 6,'TROB_String', Filename)
CALL TR_SETATTRIBUTE(window2,2,'TROB_String',Argumente)
CALL TR_SETATTRIBUTE(window2, 7,'TROB_String', Stack)
CALL TR_SETATTRIBUTE(window2,8,'TRAT_Disabled','0')
CALL TR_SETATTRIBUTE(window2,8,'TRAT_Value','0')
CALL TR_SETATTRIBUTE(window2,9,'TRAT_Value','0')
CALL TR_SETATTRIBUTE(window2,9,'TRAT_Disabled','0')
CALL TR_SETATTRIBUTE(window2,10,'TRAT_Value','0')
CALL TR_SETATTRIBUTE(window2,10,'TRAT_Disabled','1')
END

RETURN


Fenster:
IF EXISTS('Ram:ENV/Triton/ProgrammManager.app') THEN 'RUN >NIL: COPY Ram:ENV/Triton/ProgrammManager.app TO SYS:Prefs/Env-Archive/Triton/'
IF EXISTS('Ram:ENV/Triton/ProgrammManager.win.1') THEN 'RUN >NIL: COPY Ram:ENV/Triton/ProgrammManager.win.1 TO SYS:Prefs/Env-Archive/Triton/'
IF EXISTS('Ram:ENV/Triton/ProgrammManager.win.2') THEN 'RUN >NIL: COPY Ram:ENV/Triton/ProgrammManager.win.2 TO SYS:Prefs/Env-Archive/Triton/'
IF EXISTS('Ram:ENV/Triton/ProgrammManager.win.3') THEN 'RUN >NIL: COPY Ram:ENV/Triton/ProgrammManager.win.3 TO SYS:Prefs/Env-Archive/Triton/'
IF EXISTS('Ram:ENV/Triton/ProgrammManager.win.4') THEN 'RUN >NIL: COPY Ram:ENV/Triton/ProgrammManager.win.4 TO SYS:Prefs/Env-Archive/Triton/'
IF EXISTS('Ram:ENV/Triton/ProgrammManager.win.5') THEN 'RUN >NIL: COPY Ram:ENV/Triton/ProgrammManager.win.5 TO SYS:Prefs/Env-Archive/Triton/'
IF EXISTS('Ram:ENV/Triton/ProgrammManager.win.6') THEN 'RUN >NIL: COPY Ram:ENV/Triton/ProgrammManager.win.6 TO SYS:Prefs/Env-Archive/Triton/'
IF EXISTS('Ram:ENV/Triton/ProgrammManager.win.7') THEN 'RUN >NIL: COPY Ram:ENV/Triton/ProgrammManager.win.7 TO SYS:Prefs/Env-Archive/Triton/'
IF EXISTS('Ram:ENV/Triton/ProgrammManager.win.10') THEN 'RUN >NIL: COPY Ram:ENV/Triton/ProgrammManager.win.10 TO SYS:Prefs/Env-Archive/Triton/'
IF EXISTS('Ram:ENV/Triton/ProgrammManager.win.8') THEN 'RUN >NIL: COPY Ram:ENV/Triton/ProgrammManager.win.8 TO SYS:Prefs/Env-Archive/Triton/'
RETURN


iconify:

FileAktiv = TR_GETATTRIBUTE(window,1,'TRAT_Value')

CALL TR_CLOSEPROJECT(window)
iconif:
windowtags = WindowID(10),
WindowPosition('TRWP_CENTERSCREEN') Aktiv PubScreenName(Pubscreen) WindowTitle('Prg.Manager'),
EndProject
appD = TR_CREATEAPP('TRCA_Name ProgrammManager')
IF appD ~= '00000000'x THEN DO
window10 = TR_OPENPROJECT(appD,windowtags)
IF window10 ~= '00000000'x THEN DO
Ausists = 0

DO WHILE Ausists ~= 1
CALL TR_WAIT(appD,'')
DO WHILE TR_HANDLEMSG(appD,'eventD')
IF eventD.trm_class = 'TRMS_CLOSEWINDOW' THEN DO
CALL TR_CLOSEPROJECT(window10)
CALL TR_DELETEAPP(appD)
Ausists = 1
IF (Iconmerker = 'Ein') THEN DO
DROP Iconmerker
Signal Start
END
window = TR_OPENPROJECT(app,windowtags1)
CALL GebeAttribute
RETURN
END
END
END
END

GebeAttribute:
DROP PubScreenSchalter
FileRech1 = FileAktiv+1
FileRech2 = FileAktiv

IF (FileAktiv = '-1') THEN DO 
FileRech1 = ''
FileRech2 = '0'
END

IF (Filename = 'FILENAME') THEN Filename = ''
IF (ProgrammNr = 'PROGRAMMNR') THEN ProgrammNr = ''

CALL TR_SETATTRIBUTE(window,10,'TRAT_Text',Filename)
CALL TR_SETATTRIBUTE(window,15,'TRAT_VALUE',Auswahl)
CALL TR_SETATTRIBUTE(window,17,'TRAT_Text',FileRech1)
CALL TR_SETATTRIBUTE(window,1,'TRAT_Value',FileRech2)

IF (Auswahl = '0') THEN DO
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',List.0)
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview',List)
END
IF (Auswahl = '1') THEN DO
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListNormal.0)
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview',ListNormal)
END
IF (Auswahl = '2') THEN DO
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListRexx.0)
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview',ListRexx)
END
IF (Auswahl = '3') THEN DO
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListScript.0)
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview',ListScript)
END
IF (Auswahl = '4') THEN DO
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListGuide.0)
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview',ListGuide)
END

RETURN


About:

CALL TR_LOCKPROJECT(window)

windowtags = WindowID(4),
WindowPosition('TRWP_CENTERDISPLAY') FarbenFenster 'TRWI_PropFontAttr' Schrift PubScreenName(Pubscreen) WindowTitle("Programmierer Info"),
'HorizGroupA Space VertGroupA Space' NamedSeparator('Programmmanager v2.2') 'Space',
'Space' CenteredText("© 1998") 'SpaceS',
CenteredText("by Reinhard Steinert") 'Space' 'Space',
NamedSeparator('Call the') 'Space',
CenteredText3("Jumbo  BBS") 'Space',
CenteredText("2:2490/1930.0@fidonet") 'Space',
CenteredText("99:4909/70.0@coconet") 'Space',
CenteredText("51:104/0.0@x-net") 'Space' 'Space',
NamedFrameBox('Dial this Numbers :') FarbeGruppe,
'HorizGroupA Space VertGroupA Space' 'Space',
CenteredText("+49(0)911 - 2779781 for [X.75]") 'Space',
CenteredText("+49(0)911 - 2877204 for [X.75]") 'Space',
CenteredText("+49(0)911 -  265627 for [V.xx]") 'Space',
CenteredText("+49(0)911 - 2877204 for [V.xx]") 'Space',
'Space' 'EndGroup Space EndGroup',
'Space EndGroup Space EndGroup',
      'EndProject'
window4 = TR_OPENPROJECT(app,windowtags)
IF window4 ~= '00000000'x THEN DO
enda = 0
DO WHILE ~enda
CALL TR_WAIT(app,'')
DO WHILE TR_HANDLEMSG(app,'eventa')
IF eventa.trm_class = 'TRMS_CLOSEWINDOW' THEN DO
CALL TR_UNLOCKPROJECT(window)
enda = 1
END
END
END
CALL TR_CLOSEPROJECT(window4)
END
RETURN('')


Screen:

Publiste = PUBSCREENLIST('screenliste')

CALL TR_LOCKPROJECT(window3)

windowtags = WindowID(5),
WindowPosition('TRWP_CENTERSCREEN') FarbenFenster 'TRWI_PropFontAttr' Schrift PubScreenName(Pubscreen) WindowTitle('Bildschirm    '),
'HorizGroupAC' 'Space' 'VertGroupAC' 'Space',
GroupBox FarbeGruppe,
'HorizGroupAC' 'Space' 'VertGroupAC' 'Space',
ListSS(screenliste,1,0,-1) 'Space',
'HorizGroupAC',
Button('_Abbrechen',2),
'Space' 'EndGroup' 'Space' 'EndGroup',
'EndGroup' 'Space' 'EndGroup' 'Space' 'EndGroup',
'EndProject'

appP = Defaultapp

window5 = TR_OPENPROJECT(appP,windowtags)
IF window5 ~= '00000000'x THEN DO
endP = 0
DO WHILE ~endP
CALL TR_WAIT(appP,'')

DO WHILE TR_HANDLEMSG(appP,'eventP')

IF eventP.trm_class = 'TRMS_NEWVALUE' THEN DO
SELECT
WHEN eventP.trm_id = 1 THEN DO
PubNr = eventP.trm_data+1
PubscreenNeu = screenliste.PubNr
CALL TR_UNLOCKPROJECT(window3)
endP = 1
END
OTHERWISE;NOP
END
END

IF eventP.trm_class = 'TRMS_ACTION' THEN DO

IF eventP.trm_id = 2 THEN DO
CALL TR_UNLOCKPROJECT(window3)
endP = 1
END

END

IF eventP.trm_class = 'TRMS_CLOSEWINDOW' THEN DO
CALL TR_UNLOCKPROJECT(window3)
endP = 1
END
END
END
CALL TR_CLOSEPROJECT(window5)
END
RETURN


Schutz:

IF (Filename = 'FILENAME') THEN DO
CALL TR_EASYREQUEST(app,' Du musst zuerst ein Programm auswählen ! ','_Das klingt logisch','TREZ_LockProject' C2D(window) 'TAG_END')
RETURN
END

schutzbits = GETPROTECTION(Filepfad)

PosScript = SUBSTR(schutzbits,2,1);PosRes = SUBSTR(schutzbits,3,1);PosArch = SUBSTR(schutzbits,4,1)
PosLes = SUBSTR(schutzbits,5,1);PosSchreib = SUBSTR(schutzbits,6,1);PosAus = SUBSTR(schutzbits,7,1)
Posloesch = SUBSTR(schutzbits,8,1)

IF (PosScript = 'S') THEN DO;script = CheckBoxCLEFT(1);Scripts = 'S';END
IF (PosScript = '-') THEN DO;script = CheckBoxLEFT(1);Scripts = '-';END
IF (PosRes = 'P') THEN DO;resi = CheckBoxCLEFT(2);Resident = 'P';END
IF (PosRes = '-') THEN DO;resi = CheckBoxLEFT(2);Resident = '-';END
IF (PosArch = 'A') THEN DO;Arch = CheckBoxCLEFT(3);Archiv = 'A';END
IF (PosArch = '-') THEN DO;Arch = CheckBoxLEFT(3);Archiv = '-';END
IF (PosLes = 'R') THEN DO;Lese = CheckBoxCLEFT(4);Lesen = 'R';END
IF (PosLes = '-') THEN DO;Lese = CheckBoxLEFT(4);Lesen = '-';END
IF (PosSchreib = 'W') THEN DO;Schreib = CheckBoxCLEFT(5);Schreiben = 'W';END
IF (PosSchreib = '-') THEN DO;Schreib = CheckBoxLEFT(5);Schreiben = '-';END
IF (PosAus = 'E') THEN DO;AusF = CheckBoxCLEFT(6);Ausfuehren = 'E';END
IF (PosAus = '-') THEN DO;AusF = CheckBoxLEFT(6);Ausfuehren = '-';END
IF (Posloesch = 'D') THEN DO;Loesch = CheckBoxCLEFT(7);Loeschen = 'D';END
IF (Posloesch = '-') THEN DO;Loesch = CheckBoxLEFT(7);Loeschen = '-';END

CALL TR_LOCKPROJECT(window)

windowtags = WindowID(6),
WindowPosition('TRWP_CENTERSCREEN') HelpMe FarbenFenster 'TRWI_PropFontAttr' Schrift PubScreenName(Pubscreen) WindowTitle('SchutzBits'),
'HorizGroupA' 'Space' 'VertGroupAC' 'Space',
GroupBox FarbeGruppe,
'HorizGroupA' 'Space' 'VertGroupAC' 'Space',
'HorizGroupA' 'Space' 'Space' script TextID('      Scr_ipt',1) QuickHelp(Satz.50) 'Space' 'Space' 'EndGroup',
'HorizGroupA' 'Space' 'Space' resi TextID('    _Resident',2) QuickHelp(Satz.51) 'Space' 'Space' 'EndGroup',
'HorizGroupA' 'Space' 'Space' Arch TextID('  Archi_viert',3) QuickHelp(Satz.52) 'Space' 'Space' 'EndGroup',
'HorizGroupA' 'Space' 'Space' Lese TextID('      _Lesbar',4) QuickHelp(Satz.53) 'Space' 'Space' 'EndGroup',
'HorizGroupA' 'Space' 'Space' Schreib TextID('  S_chreibbar',5) QuickHelp(Satz.54) 'Space' 'Space' 'EndGroup',
'HorizGroupA' 'Space' 'Space' AusF TextID('  A_usführbar',6) QuickHelp(Satz.55) 'Space' 'Space' 'EndGroup',
'HorizGroupA' 'Space' 'Space' Loesch TextID('    Lösch_bar',7) QuickHelp(Satz.56) 'Space' 'Space' 'EndGroup',
'Space' 'Space' 'HorizGroupAC' Button('_Abbruch',9) QuickHelp(Satz.57),
Button('_Setzen',10) QuickHelp(Satz.58) 'EndGroup',
'Space' 'EndGroup' 'Space' 'EndGroup',
'Space' 'EndGroup' 'Space' 'EndGroup',
EndProject

appSs = Defaultapp

window6 = TR_OPENPROJECT(appSs,windowtags)
IF window6 ~= '00000000'x THEN DO
Aussi = 0
DO WHILE ~Aussi
CALL TR_WAIT(appSs,'')

DO WHILE TR_HANDLEMSG(appSs,'eventSs')

IF eventSs.trm_class = 'TRMS_NEWVALUE' THEN DO
SELECT
WHEN eventSs.trm_id = 1 THEN DO
cripts = eventSs.trm_data
IF (cripts = '0') THEN Scripts = '-'
IF (cripts = '1') THEN Scripts = 'S'
END
WHEN eventSs.trm_id = 2 THEN DO
Residen = eventSs.trm_data
IF (Residen = '0') THEN Resident = '-'
IF (Residen = '1') THEN Resident = 'P'
END
WHEN eventSs.trm_id = 3 THEN DO
Archi = eventSs.trm_data
IF (Archi = '0') THEN Archiv = '-'
IF (Archi = '1') THEN Archiv = 'A'
END
WHEN eventSs.trm_id = 4 THEN DO
Leser = eventSs.trm_data
IF (Leser = '0') THEN Lesen = '-'
IF (Leser = '0') THEN Lesen = 'R'
END
WHEN eventSs.trm_id = 5 THEN DO
chreiben = eventSs.trm_data
IF (chreiben = '0') THEN Schreiben = '-'
IF (chreiben = '1') THEN Schreiben = 'W'
END
WHEN eventSs.trm_id = 6 THEN DO
Ausfuehr = eventSs.trm_data
IF (Ausfuehr = '0') THEN Ausfuehren = '-'
IF (Ausfuehr = '1') THEN Ausfuehren = 'E'
END
WHEN eventSs.trm_id = 7 THEN DO
oeschen = eventSs.trm_data
IF (oeschen = '0') THEN Loeschen = '-'
IF (oeschen = '1') THEN Loeschen = 'D'
END
OTHERWISE NOP
END
END
IF eventSs.trm_class = 'TRMS_ACTION' THEN DO
IF eventSs.trm_id = 9 THEN DO
CALL TR_UNLOCKPROJECT(window)
Aussi = 1
END
IF eventSs.trm_id = 10 THEN DO
SetzBits = SETPROTECTION(Filepfad,'-'Scripts''Resident''Archiv''Lesen''Schreiben''Ausfuehren''Loeschen)
CALL TR_UNLOCKPROJECT(window)
Aussi = 1
END
END
IF eventSs.trm_class = 'TRMS_CLOSEWINDOW' THEN DO
CALL TR_UNLOCKPROJECT(window)
Aussi = 1
END
END;END
CALL TR_CLOSEPROJECT(window6)
END
RETURN('')


Kommentar:

IF (Filename = 'FILENAME') THEN DO
CALL TR_EASYREQUEST(app,' Du musst zuerst ein Programm auswählen ! ','_Das klingt logisch','TREZ_LockProject' C2D(window) 'TAG_END')
RETURN
END

kommentar = GETCOMMENT(Filepfad)
CALL TR_LOCKPROJECT(window)

windowtags =   WindowID(7),
WindowPosition('TRWP_CENTERSCREEN') HelpMe FarbenFenster 'TRWI_PropFontAttr' Schrift PubScreenName(Pubscreen) WindowTitle('Dateikommentar'),
'HorizGroupAC' 'Space' 'VertGroup' 'Space',
GroupBox FarbeGruppe,
'HorizGroupAC' 'Space' 'VertGroup' 'Space',
Text3('Dateikommentar einfügen / ändern :') 'Space',
'VertGroupAC' StringGadget('',2) 'TRAT_Value 80' QuickHelp(Satz.59) 'Space',
'HorizGroupAC' Button('_Abrechen',1) QuickHelp(Satz.60) 'Space' Button('_Einfügen',3) QuickHelp(Satz.61),
'VertGroupAC' TextN('                                              ') 'EndGroup',
'Space' 'EndGroup' 'Space' 'EndGroup',
'EndGroup' 'Space' 'EndGroup' 'Space' 'EndGroup' 'Space' 'EndGroup',
EndProject

appDa = Defaultapp
window7 = TR_OPENPROJECT(appDa,windowtags)
IF window7 ~= '00000000'x THEN DO
endeDa = 0
CALL TR_SETATTRIBUTE(window7, 2,'TROB_String',kommentar)
DO WHILE endeDa ~= 1
CALL TR_WAIT(appDa,'')
DO WHILE TR_HANDLEMSG(appDa,'eventDa')
IF eventDa.trm_class = 'TRMS_NEWVALUE' THEN DO
SELECT
WHEN eventDa.trm_id = 2 THEN kommentar = TR_GETATTRIBUTE(window7,2,'TROB_String')
OTHERWISE;NOP
END
END
IF eventDa.trm_class = 'TRMS_ACTION' THEN DO
IF eventDa.trm_id = 1 THEN DO
CALL TR_UNLOCKPROJECT(window)
endeDa = 1
END
IF eventDa.trm_id = 3 THEN DO
CALL TR_UNLOCKPROJECT(window)
CALL SETCOMMENT(Filepfad,kommentar)
endeDa = 1
END
END
IF eventDa.trm_class = 'TRMS_CLOSEWINDOW' THEN DO
CALL TR_UNLOCKPROJECT(window)
endeDa = 1
END
END
END
CALL TR_CLOSEPROJECT(window7)
END
RETURN('')


UseIt:

IF (ChangeMerker = '1') THEN Signal Zurueck

IF (Con = 'CON') THEN Con = 0
IF (PrgStart = 'PRGSTART') THEN PrgStart = 0
IF (Argumente = 'ARGUMENTE') THEN Argumente = ''
Filename = TRANSLATE(Filename,'_',' ')
NeueZeile = Filename'   'Stack'   'Con'   'PrgStart'   'Filepfad' 'Argumente
NeueZeile = STRIP(NeueZeile)

IF (ChangeMerker = '1') THEN WegDam = STEMREMOVE('Zeile',ProgrammNr)

IF (Zeile.0 = '0') THEN DO
Zeile.0 = '1'
Zeile.1 = NeueZeile
MerkEs = 'Ein'
END

IF ~(MerkEs = 'Ein') THEN NeuKonl = STEMINSERT('Zeile',1,1,NeueZeile)
IF ~(MerkEs = 'Ein') THEN Sortieren = QSORT('Zeile',,,'NOCASE',)

CALL InitZeile
CALL TestePrgStart
CALL InitialListFenster
CALL WieIstDieAuswahl


CALL TR_SETATTRIBUTE(window,1,'TRAT_Value',-1)
CALL TR_SETATTRIBUTE(window,17,'TRAT_Text','')
CALL TR_SETATTRIBUTE(window,10,'TRAT_Text','')
DROP MerkEs;DROP ChangeMerker;Drop PrgStart;Drop Con;DROP Argumente;DROP Filepfad;DROP Filename
BenutzerMerker = 'Ein'

RETURN


WieIstDieAuswahl:

IF (Auswahl = '0') THEN DO
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',List.0)
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','List')
END

IF (Auswahl = '1')&(PrgStart = '0') THEN DO
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','ListNormal')
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListNormal.0)
END

IF (Auswahl = '2')&(PrgStart = '1') THEN DO
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','ListRexx')
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListRexx.0)
END

IF (Auswahl = '3')&(PrgStart = '2') THEN DO
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','ListScript')
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListScript.0)
END

IF (Auswahl = '4')&(PrgStart = '3') THEN DO
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','ListGuide')
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListGuide.0)
END

RETURN


TestePrgStart:

IF (PrgStart = '0') THEN DO
IF NormalPrg.0 = 0 THEN DO
NormalPrg.0 = '1'
NormalPrg.1 = NeueZeile
MerkEs = 'Ein'
END
IF ~(MerkEs = 'Ein') THEN Neu = STEMINSERT('NormalPrg',1,1,NeueZeile)
IF ~(MerkEs = 'Ein') THEN Sortieren1 = QSORT('NormalPrg',,,'NOCASE',)
END 

if (PrgStart = '1') THEN DO
IF RexxPrg.0 = 0 THEN DO
RexxPrg.0 = '1'
RexxPrg.1 = NeueZeile
MerkEs = 'Ein'
END
IF ~(MerkEs = 'Ein') THEN Neu = STEMINSERT('RexxPrg',1,1,NeueZeile)
IF ~(MerkEs = 'Ein') THEN Sortieren1 = QSORT('RexxPrg',,,'NOCASE',)
END

IF (PrgStart = '2') THEN DO
IF ScriptPrg.0 = 0 THEN DO
ScriptPrg.0 = '1'
ScriptPrg.1 = NeueZeile
MerkEs = 'Ein'
END
IF ~(MerkEs = 'Ein') THEN Neu = STEMINSERT('ScriptPrg',1,1,NeueZeile)
IF ~(MerkEs = 'Ein') THEN Sortieren1 = QSORT('ScriptPrg',,,'NOCASE',)
END

IF (PrgStart = '3') THEN DO
IF GuidePrg.0 = 0 THEN DO
GuidePrg.0 = '1'
GuidePrg.1 = NeueZeile
MerkEs = 'Ein'
END
IF ~(MerkEs = 'Ein') THEN Neu = STEMINSERT('GuidePrg',1,1,NeueZeile)
IF ~(MerkEs = 'Ein') THEN Sortieren1 = QSORT('GuidePrg',,,'NOCASE',)
END

Drop MerkEs
RETURN


InitialListFenster:

IF (PrgStart = '0')|(PrgStartAlt = '0') THEN DO
DO T = 1 TO NormalPrg.0
ListNormal.T = WORD(NormalPrg.T,1)
StackNormal.T = WORD(NormalPrg.T,2)
ConNormal.T = WORD(NormalPrg.T,3)
PrgStartNormal.T = WORD(NormalPrg.T,4)
END
ListNormal.0 = NormalPrg.0
END

IF (PrgStart = '1')|(PrgStartAlt = '1') THEN DO
DO T = 1 TO RexxPrg.0
ListRexx.T = WORD(RexxPrg.T,1)
StackRexx.T = WORD(RexxPrg.T,2)
ConRexx.T = WORD(RexxPrg.T,3)
PrgStartRexx.T = WORD(RexxPrg.T,4)
END
ListRexx.0 = RexxPrg.0
END

IF (PrgStart = '2')|(PrgStartAlt = '2') THEN DO
DO T = 1 TO ScriptPrg.0
ListScript.T = WORD(ScriptPrg.T,1)
StackScript.T = WORD(ScriptPrg.T,2)
ConScript.T = WORD(ScriptPrg.T,3)
PrgStartScript.T = WORD(ScriptPrg.T,4)
END
ListScript.0 = ScriptPrg.0
END

IF (PrgStart = '3')|(PrgStartAlt = '3') THEN DO
DO T = 1 TO GuidePrg.0
ListGuide.T = WORD(GuidePrg.T,1)
StackGuide.T = WORD(GuidePrg.T,2)
ConGuide.T = WORD(GuidePrg.T,3)
PrgStartGuide.T = WORD(GuidePrg.T,4)
END
ListGuide.0 = GuidePrg.0
END

RETURN



LeseKonfiguration:

ZaehlerScript = '1'
ZaehlerRexx = '1'
ZaehlerPrg = '1'
ZaehlerGuide = '1'

LeseKon = READFILE(Pfad'Programmmanager.txt','Zeile')

DO i = 1 TO Zeile.0

 List.i = WORD(Zeile.i,1)
 Stack.i = WORD(Zeile.i,2)
 Con.i = WORD(Zeile.i,3)
 PrgStart.i = WORD(Zeile.i,4)

 IF (PrgStart.i = '3') THEN DO

 GuidePrg.ZaehlerGuide = Zeile.i
 ListGuide.ZaehlerGuide = List.i
 StackGuide.ZaehlerGuide = Stack.i
 ConGuide.ZaehlerGuide = Con.i
 PrgStartGuide.ZaehlerGuide = '3'
 ZaehlerGuide = ZaehlerGuide+1
 END

 IF (PrgStart.i = '2') THEN DO

 ScriptPrg.ZaehlerScript = Zeile.i 
 ListScript.ZaehlerScript = List.i
 StackScript.ZaehlerScript = Stack.i
 ConScript.ZaehlerScript = Con.i
 PrgStartScript.ZaehlerScript = '2'
 ZaehlerScript = ZaehlerScript+1
 END


 IF (PrgStart.i = '1') THEN DO

 RexxPrg.ZaehlerRexx = Zeile.i
 ListRexx.ZaehlerRexx = List.i
 StackRexx.ZaehlerRexx = Stack.i
 ConRexx.ZaehlerRexx = Con.i
 PrgStartRexx.ZaehlerRexx = '1'
 ZaehlerRexx = ZaehlerRexx+1
 END

 IF (PrgStart.i = '0') THEN DO

 NormalPrg.ZaehlerPrg = Zeile.i
 ListNormal.ZaehlerPrg = List.i
 StackNormal.ZaehlerPrg = Stack.i
 ConNormal.ZaehlerPrg = Con.i
 PrgStartNormal.ZaehlerPrg = '0'
 ZaehlerPrg = ZaehlerPrg+1
 END

END

List.0 = Zeile.0

ListNormal.0 = ZaehlerPrg-1
ListRexx.0 = ZaehlerRexx-1
ListScript.0 = ZaehlerScript-1
ListGuide.0 = ZaehlerGuide-1

ScriptPrg.0 = ZaehlerScript-1
RexxPrg.0 = ZaehlerRexx-1
NormalPrg.0 = ZaehlerPrg-1
GuidePrg.0 = ZaehlerGuide-1

RETURN


SucheArgumente:

Prglang = LENGTH(Filename)
Stcklang = LENGTH(Stack)
Prglang = (Prglang)+(Stcklang+13)
RestZeile = SUBSTR(ZeileR,Prglang)
Filepfad = STRIP(RestZeile)
SucheArg = POS(' ',Filepfad)
IF (SucheArg = '0') THEN Argumente = ''
IF (SucheArg >= '1') THEN DO
Argumente = SUBSTR(Filepfad,(SucheArg+1))
Filepfad = DELSTR(Filepfad,SucheArg)
END

RETURN


Einstellungen:

SchriftAlt.ta_name = Schrift.ta_name
SchriftAlt.ta_ysize = Schrift.ta_ysize
SchriftAlt.ta_style = Schrift.ta_style
SchriftNameAlt = SchriftName
TextEdNameAlt = TextEdName
TextEdPfadAlt = TextEdPfad
HexEdNameAlt = HexEdName
HexEdPfadAlt = HexEdPfad

Con1Alt = Con1
Con2Alt = Con2
Con3Alt = Con3
Con4Alt = Con4

FensterTitelAlt = FensterTitel
ProgrammTypAlt = ProgrammTyp
StarticonAlt = Starticon
deviceAlt = device
PubscreenAlt = Pubscreen
HilfeStartNrAlt = HilfeStartNr
HilfeNameAlt = HilfeName

CALL TR_LOCKPROJECT(window)

windowtags = WindowID(3),
WindowPosition('TRWP_CENTERSCREEN') HelpMe FarbenFenster 'TRWI_PropFontAttr' Schrift PubScreenName(Pubscreen) WindowTitle('Einstellungen'),
'HorizGroup' 'Space' 'VertGroupA' 'Space',
GroupBox FarbeGruppe,
'HorizGroupEC' 'Space' 'Space' 'VertGroupA' 'Space' 'Space',
TextH('Konsoleneinstellung') 'Space' 'Space' 'Space' TextN('X - Position') 'Space',
'HorizGroupEC' SliderGadget(0,900,Con1,8) QuickHelp(Satz.15) 'Space',
ClippedTextBoxMW(Con1,9,4) 'Space' 'EndGroup',
'VertGroupA' 'Space' TextN('Y - Position') 'Space' 'EndGroup',
'HorizGroupEC' SliderGadget(0,900,Con2,10) QuickHelp(Satz.16) 'Space' ClippedTextBoxMW(Con2,11,4) 'Space' 'EndGroup',
'VertGroupA' 'Space' TextN('Breite') 'Space' 'EndGroup',
'HorizGroupEC' SliderGadget(100,1200,Con3,12) QuickHelp(Satz.17) 'Space',
ClippedTextBoxMW(Con3,13,4) 'Space' 'EndGroup',
'VertGroupA' 'Space' TextN('Höhe') 'Space' 'EndGroup',
'HorizGroupEC' SliderGadget(50,900,Con4,14) QuickHelp(Satz.18) 'Space',
ClippedTextBoxMW(Con4,15,4) 'Space' 'EndGroup',
'VertGroupA' 'Space' 'Space' 'Space' 'Space' TextH('Fenstertitel') 'Space' 'EndGroup',
'HorizGroupEC' StringGadget(FensterTitel,16) 'TRAT_Value 1024' 'Space' 'EndGroup',
'Space' 'Space' 'EndGroup' 'Space' 'Space' 'EndGroup' 'Space' 'EndGroup',
'HorizGroup' 'Space' 'VertGroup' 'Space',
GroupBox FarbeGruppe,
'HorizGroup' 'Space' 'Space' 'VertGroupA' 'Space' 'Space',
TextH('Programmauswahl Neustart') 'Space',
'HorizGroup' 'SpaceB' 'SpaceB' 'SpaceB' 'SpaceB' 'SpaceB' 'SpaceB' 'SpaceB' 'VertGroupA' 'Space',
MXGadget('ProgrammTyp',ProgStartNr,2) QuickHelp(Satz.19''CR''Satz.20) 'Space' 'Space',
ClippedTextBox(ProgrammTypName,1) 'Space' 'Space' 'EndGroup' 'EndGroup',
'HorizGroupAC' TextH('Text-Editor') 'Space' 'EndGroup' 'Space',
'HorizGroupAC' GetFileButton(22) QuickHelp(Satz.21) StringGadget(TextEdName,23) 'TRAT_Value 1024' 'EndGroup' 'Space' 'Space',
'HorizGroupAC' TextH('Hex-Editor') 'EndGroup' 'Space',
'HorizGroupAC' GetFileButton(24) QuickHelp(Satz.22) StringGadget(HexEdName,25) 'TRAT_Value 1024' 'EndGroup',
'Space' 'Space' 'EndGroup' 'Space' 'Space' 'EndGroup' 'SpaceS' 'Space',
'HorizGroupAC' Button('_Sichern',26) QuickHelp(Satz.24),
Button('_Ende',27) QuickHelp(Satz.25) Button('_Benützen',28) QuickHelp(Satz.26) 'EndGroup',
'EndGroup',
'HorizGroup' 'Space' 'VertGroup' 'Space',
GroupBox FarbeGruppe,
'HorizGroupAC' 'Space' 'Space' 'VertGroupA' 'Space' 'Space',
TextH('Programmstart') 'Space',
'Space' MXGadget('Starticon',Icon,3) QuickHelp(Satz.23) 'Space' ClippedTextBox(StarticonName,4) 'Space' 'Space',
TextH('Dateipfad') 'Space',
'HorizGroupAC' GetDrawerButton(7) QuickHelp(Satz.27''CR''Satz.28),
ClippedTextBox(device,6) 'EndGroup' 'Space' 'Space',
'HorizGroup' TextH('Pubscreen') 'EndGroup' 'Space',
'HorizGroupAC' GetEntryButton(17) QuickHelp(Satz.29) ClippedTextBox(Pubscreen,18) 'EndGroup' 'Space' 'Space',
'HorizGroup' TextH('Fontauswahl') 'EndGroup' 'Space',
'HorizGroupAC' GetEntryButton(19) QuickHelp(Satz.30) ClippedTextBox(SchriftName,40),
ClippedTextBoxMW(Schrift.ta_ysize,41,3) 'EndGroup' 'Space' 'Space',
'HorizGroupEC' TextH('Hilfe ') 'Space' CycleGadget('Hilfe',HilfeStartNr,20) QuickHelp(Satz.31),
ClippedTextBoxMW(HilfeName,21,4) 'EndGroup',
'Space' 'Space' 'EndGroup' 'Space' 'Space' 'EndGroup',
'EndGroup' 'Space' 'EndGroup' 'EndGroup',
'EndGroup',
'EndProject'


window3 = TR_OPENPROJECT(app,windowtags)
IF window3 ~= '00000000'x THEN DO
Aus = 0
DO WHILE Aus ~= 1


CALL TR_WAIT(app,'')

DO WHILE TR_HANDLEMSG(app,'eventr')

IF eventr.trm_class = 'TRMS_NEWVALUE' THEN DO

SELECT

WHEN eventr.trm_id = 2 THEN DO
ProgStartNr = eventr.trm_data
StartRe = eventr.trm_data+1

ProgrammTypName = ProgrammTyp.StartRe
CALL TR_SETATTRIBUTE(window3,1,'TRAT_Text',ProgrammTypName)
END
WHEN eventr.trm_id = 3 THEN DO
Icon = eventr.trm_data
StartReIcon = eventr.trm_data+1

StarticonName = Starticon.StartReIcon
CALL TR_SETATTRIBUTE(window3,4,'TRAT_Text',StarticonName)
END
WHEN eventr.trm_id = 8 THEN DO
Con1 = eventr.trm_data
CALL TR_SETATTRIBUTE(window3,9,'TRAT_Text',Con1)
END
WHEN eventr.trm_id = 10 THEN DO
Con2 = eventr.trm_data
CALL TR_SETATTRIBUTE(window3,11,'TRAT_Text',Con2)
END
WHEN eventr.trm_id = 12 THEN DO
Con3 = eventr.trm_data
CALL TR_SETATTRIBUTE(window3,13,'TRAT_Text',Con3)
END
WHEN eventr.trm_id = 14 THEN DO
Con4 = eventr.trm_data
CALL TR_SETATTRIBUTE(window3,15,'TRAT_Text',Con4)
END

WHEN eventr.trm_id = 20 THEN DO
HilfeStartNr = eventr.trm_data
HilfeStartRe = eventr.trm_data+1

HilfeName = Hilfe.HilfeStartRe
CALL TR_SETATTRIBUTE(window3,21,'TRAT_Text',HilfeName)
END


WHEN eventr.trm_id = 23 THEN TextEdName = TR_GETATTRIBUTE(window3,23,'TROB_String')
WHEN eventr.trm_id = 25 THEN HexEdName = TR_GETATTRIBUTE(window3,25,'TROB_String')
WHEN eventr.trm_id = 16 THEN DO
FensterTitel = TR_GETATTRIBUTE(window3,16,'TROB_String')
FensterTitel = TRANSLATE(FensterTitel,'_',' ')
END

OTHERWISE;NOP
END

END


IF eventr.trm_class = 'TRMS_ACTION' THEN DO

IF eventr.trm_id = 7 THEN DO
Filestart = ASL_REQUESTFILE(window3,'deviceNeu',GetDrawer('Dateipfad','Fertig',device) 'ASLFR_PubScreenName' Pubscreen)
IF (Filestart = '1') THEN device = deviceNeu.1
IF (Filestart = '0') THEN device = device
CALL TR_SETATTRIBUTE(window3,6,'TRAT_Text',device)
END

IF eventr.trm_id = 17 THEN DO
CALL Screen
IF (PubscreenNeu = 'PUBSCREENNEU') THEN PubscreenNeu = PubscreenAlt
CALL TR_SETATTRIBUTE(window3,18,'TRAT_Text',PubscreenNeu)
END



IF eventr.trm_id = 19 THEN DO

Fontauswahl = ASL_RequestFont(window3,'Schriften',GetFont('Fontauswahl','Fertig',Schriften.ta_name,Schrift.ta_ysize) 'ASLFO_PubScreenName' Pubscreen 'TAG_END')

Schrift.0 = '3'
Schrift.ta_name = Schriften.ta_name
Schrift.ta_ysize = Schriften.ta_ysize
Schrift.ta_style = Schriften.ta_style

Schriftlaenge = LENGTH(Schrift.ta_name)
SchriftLang = Schriftlaenge-5
SchriftName = SUBSTR(Schrift.ta_name,1,SchriftLang)

IF (Fontauswahl = '0') THEN DO
Schrift.ta_name = SchriftAlt.ta_name
Schrift.ta_ysize = SchriftAlt.ta_ysize
Schrift.ta_style = SchriftAlt.ta_style
SchriftName = SchriftNameAlt
END
CALL TR_SETATTRIBUTE(window3,40,'TRAT_Text',SchriftName)
CALL TR_SETATTRIBUTE(window3,41,'TRAT_Text',Schrift.ta_ysize)
END


IF eventr.trm_id = 22 THEN DO

TextEdi = ASL_REQUESTFILE(window3, 'TextEd', LoadFile('Wähle einen Text-Editor aus','Fertig',TextEdPfad,'') 'ASLFR_PubScreenName' Pubscreen)

TextEditor = TextEd.1
TextEdPfad = PATHPART(TextEditor)
TextEdName = FILEPART(TextEditor)

IF (TextEdi = '0') THEN DO
TextEdName = TextEdNameAlt
TextEdPfad = TextEdPfadAlt
END
CALL TR_SETATTRIBUTE(window3,23,'TROB_String',TextEdName)
END

IF eventr.trm_id = 24 THEN DO

HexEdi = ASL_REQUESTFILE(window3, 'HexEd', LoadFile('Wähle einen Hex-Editor aus','Fertig',HexEdPfad,'') 'ASLFR_PubScreenName' Pubscreen)

HexEditor = HexEd.1
HexEdPfad = PATHPART(HexEditor)
HexEdName = FILEPART(HexEditor)

IF (HexEdi = '0') THEN DO
HexEdName = HexEdNameAlt
HexEdPfad = HexEdPfadAlt
END

CALL TR_SETATTRIBUTE(window3,25,'TROB_String',HexEdName)
END

IF eventr.trm_id = 26 THEN DO
IF (PubscreenNeu = 'PUBSCREENNEU') THEN PubscreenNeu = Pubscreen
IF ~(PubscreenAlt = PubscreenNeu)|~(SchriftName = SchriftNameAlt)|~(Schrift.ta_ysize = SchriftAlt.ta_ysize) THEN DO
PubScreenSchalter = 'Ein'
Pubscreen = PubscreenNeu
CALL Konfigliste
CALL TR_UNLOCKPROJECT(window)
FileAktiv = TR_GETATTRIBUTE(window,1,'TRAT_Value')
CALL TR_CLOSEPROJECT(window)
CALL TR_CLOSEPROJECT(window3)
Aus = 1
CALL PUBSCREENTOFRONT(Pubscreen)
SchreibeKonfig3 = WRITEFILE(Pfad'PrgManager.config',Konfigliste)
Signal Hauptfenster
END
Pubscreen = PubscreenNeu
CALL Konfigliste
SchreibeKonfig5 = WRITEFILE(Pfad'PrgManager.config',Konfigliste)
CALL TR_UNLOCKPROJECT(window)
IF (HilfeStartNr = '0') THEN DO
HilfeName = 'Ein'
HelpMe = QuickHelpOn('1')
END
IF (HilfeStartNr = '1') THEN DO
HilfeName = 'Aus'
HelpMe = QuickHelpOn('0')
END
CALL TR_SETATTRIBUTE(window,0,'TRWI_QuickHelp',HilfeStartNr-1)
Aus = 1
END

IF eventr.trm_id = 27 THEN DO
Con1 = Con1Alt
Con2 = Con2Alt
Con3 = Con3Alt
Con4 = Con4Alt
FensterTitel = FensterTitelAlt
ProgrammTyp = ProgrammTypAlt
Starticon = StarticonAlt
device = deviceAlt
HilfeStartNr = HilfeStartNrAlt
HilfeName = HilfeNameAlt
Pubscreen = PubscreenAlt
Schrift.ta_name = SchriftAlt.ta_name
Schrift.ta_ysize = SchriftAlt.ta_ysize
Schrift.ta_style = SchriftAlt.ta_style
SchriftName = SchriftNameAlt
TextEdName = TextEdNameAlt
TextEdPfad = TextEdPfadAlt
HexEdName = HexEdNameAlt
HexEdPfad = HexEdPfadAlt
CALL TR_UNLOCKPROJECT(window)
Aus = 1
END


IF eventr.trm_id = 28 THEN DO

IF (PubscreenNeu = 'PUBSCREENNEU') THEN PubscreenNeu = Pubscreen

IF ~(PubscreenAlt = PubscreenNeu)|~(SchriftName = SchriftNameAlt)|~(Schrift.ta_ysize = SchriftAlt.ta_ysize) THEN DO
PubScreenSchalter = 'Ein'
Pubscreen = PubscreenNeu
CALL TR_UNLOCKPROJECT(window)
FileAktiv = TR_GETATTRIBUTE(window,1,'TRAT_Value')
CALL TR_CLOSEPROJECT(window)
CALL TR_CLOSEPROJECT(window3)
Aus = 1
CALL PUBSCREENTOFRONT(Pubscreen)
Signal Hauptfenster
END

CALL TR_UNLOCKPROJECT(window)
IF (HilfeStartNr = '0') THEN DO
HilfeName = 'Ein'
HelpMe = QuickHelpOn('1')
END
IF (HilfeStartNr = '1') THEN DO
HilfeName = 'Aus'
HelpMe = QuickHelpOn('0')
END
CALL TR_SETATTRIBUTE(window,0,'TRWI_QuickHelp',HilfeStartNr-1)
Aus = 1
END


END

IF eventr.trm_class = 'TRMS_CLOSEWINDOW' THEN DO
Con1 = Con1Alt
Con2 = Con2Alt
Con3 = Con3Alt
Con4 = Con4Alt
FensterTitel = FensterTitelAlt
ProgrammTyp = ProgrammTypAlt
Starticon = StarticonAlt
device = deviceAlt
Pubscreen = PubscreenAlt
HilfeStartNr = HilfeStartNrAlt
HilfeName = HilfeNameAlt
Schrift.ta_name = SchriftAlt.ta_name
Schrift.ta_ysize = SchriftAlt.ta_ysize
Schrift.ta_style = SchriftAlt.ta_style
SchriftName = SchriftNameAlt
TextEdName = TextEdNameAlt
TextEdPfad = TextEdPfadAlt
HexEdName = HexEdNameAlt
HexEdPfad = HexEdPfadAlt
CALL TR_UNLOCKPROJECT(window)
Aus = 1
END

END
END
CALL TR_CLOSEPROJECT(window3)
END

RETURN


Konfigliste:
Konfigliste.0 = '8'
Konfigliste.1 = Con1' 'Con2' 'Con3' 'Con4' 'FensterTitel
Konfigliste.2 = ProgrammTypName' 'Icon
Konfigliste.3 = device' 'Pubscreen' 'HilfeStartNr
Konfigliste.4 = Schrift.ta_name' 'Schrift.ta_ysize' 'Schrift.ta_style
Konfigliste.5 = TextEdPfad' 'TextEdName
Konfigliste.6 = HexEdPfad' 'HexEdName
Konfigliste.7 = FarbenFenster
Konfigliste.8 = FarbeGruppe

RETURN


AddWithDrop:

IF (Auswahl = '0') THEN DO
CALL TR_EASYREQUEST(app,'Drag and Drop funktioniert nicht in der "Alle" Listauswahl.'CR'Gehe in die dementsprechende Programmauwahl.',_OK,'TREZ_LockProject' C2D(window) 'TAG_END')
RETURN
END

Filepfad = event.trm_data.1
FileName = FILEPART(Filepfad)
Con = '0'
CALL TesteInfo

IF (Auswahl = '1') THEN PrgStart = '0'
IF (Auswahl = '2') THEN PrgStart = '1'
IF (Auswahl = '3') THEN PrgStart = '2'
IF (Auswahl = '4') THEN PrgStart = '3'

NeueZeile = Filename'   'Stack'   'Con'   'PrgStart'   'Filepfad' 'Argumente
NeueZeile = STRIP(NeueZeile)

CALL TestePrgStart
CALL InitialListFenster

IF (Auswahl = '1') THEN DO
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','ListNormal')
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListNormal.0)
CALL TR_SETATTRIBUTE(window,17,'TRAT_Text','')
CALL TR_SETATTRIBUTE(window,1,'TRAT_Value',-1)
END

IF (Auswahl = '2') THEN DO
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','ListRexx')
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListRexx.0)
CALL TR_SETATTRIBUTE(window,17,'TRAT_Text','')
CALL TR_SETATTRIBUTE(window,1,'TRAT_Value',-1)
END

IF (Auswahl = '3') THEN DO
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','ListScript')
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListScript.0)
CALL TR_SETATTRIBUTE(window,17,'TRAT_Text','')
CALL TR_SETATTRIBUTE(window,1,'TRAT_Value',-1)
END

IF (Auswahl = '4') THEN DO
CALL TR_SETATTRIBUTE(window,1,'TROB_Listview','ListGuide')
CALL TR_SETATTRIBUTE(window,16,'TRAT_Text',ListGuide.0)
CALL TR_SETATTRIBUTE(window,17,'TRAT_Text','')
CALL TR_SETATTRIBUTE(window,1,'TRAT_Value',-1)
END

IF (Zeile.0 = '0') THEN DO
Zeile.0 = '1'
Zeile.1 = NeueZeile
MerkEs = 'Ein'
END

IF ~(MerkEs = 'Ein') THEN NeuZe = STEMINSERT('Zeile',1,1,NeueZeile)
IF ~(MerkEs = 'Ein') THEN SortierenZe = QSORT('Zeile',,,'NOCASE',)
CALL InitZeile
BenutzerMerker = 'Ein'
DROP ChangeMerker;Drop PrgStart;Drop Con;DROP Argumente;DROP Filepfad;DROP Filename
DROP MerkEs

Sichern = TR_EASYREQUEST(app,'Willst Du diesen Eintrag speichern oder nur benützen ?','_Speichern|_Benützen','TREZ_LockProject' C2D(window) 'TAG_END')

IF (Sichern = '1') THEN SchreibeNeues = WRITEFILE(Pfad'Programmmanager.txt','Zeile')

RETURN


TesteInfo:

IF ~EXISTS(Filepfad'.info') THEN Stack = '4096'

IF EXISTS(Filepfad'.info') THEN DO
Stack = GETSTACK(Filepfad)

TEintraege = GETTOOLTYPES(Filepfad,'tooltypes')
ZahlAktiv = '1'
Argumente = ''
DO i = 1 TO tooltypes.0
NichtAktiv = SUBSTR(tooltypes.i,1,1)
NichtIM = SUBSTR(tooltypes.i,1,2)
DoNot = UPPER(SUBSTR(tooltypes.i,1,9))

IF ~(NichtAktiv = '(')&~(NichtAktiv = '»')&~(NichtAktiv = '*')&~(NichtIM = 'IM')&~(DoNot = 'DONOTWAIT') THEN DO
Eintrag.ZahlAktiv = tooltypes.i
Argumente = Argumente' 'Eintrag.ZahlAktiv
ZahlAktiv = ZahlAktiv+1
END
END
END
IF (Stack = '0') THEN Stack = '4096'
Argumente = STRIP(Argumente)
IF (Argumente = 'ARGUMENTE') THEN Argumente = ''
RETURN


Farbeinstellung:

CALL TR_LOCKPROJECT(window)

Farbe.0 = '12'
Farbe.1 = 'Fenster-Hintergrund'
Farbe.2 = 'Requester-Hintergrund'
Farbe.3 = 'Hintergrund'
Farbe.4 = 'Farbe der hellen Kanten'
Farbe.5 = 'Farben der hellen und dunklen Kanten'
Farbe.6 = 'Farbe der hellen Kanten und Füllfarbe'
Farbe.7 = 'Farbe der hellen Kanten und Hintergrund'
Farbe.8 = 'Farbe der dunklen Kanten'
Farbe.9 = 'Farbe der dunklen Kanten und Füllfarbe'
Farbe.10 = 'Farbe der dunklen Kanten und Hintergrund'
Farbe.11 = 'Füllfarbe'
Farbe.12 = 'Füllfarbe und Hintergrund'

FarbenFensterAlt = FarbenFenster
FarbeGruppeAlt = FarbeGruppe

FarbFenster:

CALL SucheFarbeGruppe
CALL SucheFarbeHinten

windowtags =   WindowID(8),
WindowPosition('TRWP_CENTERSCREEN') HelpMe FarbenFenster 'TRWI_PropFontAttr' Schrift PubScreenName(Pubscreen) WindowTitle('Farbeinstellfenster'),
'HorizGroupAC' 'Space' 'Space' 'VertGroupAC' 'Space' 'Space',
NamedFrameBox('Vordergrundfarbe') FarbeGruppe,
'HorizGroupAC' 'Space' 'Space' 'VertGroupAC' 'Space' 'Space',
MXGadgetR('Farbe',Gruppenzahl,1) QuickHelp(Satz.68),
'Space' 'Space' 'EndGroup' 'Space' 'Space' 'EndGroup',
'Space' 'Space' NamedFrameBox('Hintergrundfarbe') FarbeGruppe,
'HorizGroupAC' 'Space' 'Space' 'VertGroupAC' 'Space' 'Space',
MXGadgetR('Farbe',Hintenzahl,2) QuickHelp(Satz.69),
'Space' 'Space' 'EndGroup' 'Space' 'Space' 'EndGroup' 'Space' 'Space',
GroupBox FarbeGruppe,
'HorizGroupAC' 'Space' 'Space' 'VertGroupAC' 'Space' 'Space',
'HorizGroupAC' Button('_Benützen',3) Button('_Speichern',4) Button('_Abbrechen',5) 'EndGroup',
'Space' 'Space' 'EndGroup' 'Space' 'Space' 'EndGroup',
'Space' 'Space' 'EndGroup' 'Space' 'Space' 'EndGroup',
EndProject

appFa = Defaultapp

window8 = TR_OPENPROJECT(appFa,windowtags)

IF window8 ~= '00000000'x THEN DO
endeFa = 0

DO WHILE endeFa ~= 1
CALL TR_WAIT(appFa,'')
DO WHILE TR_HANDLEMSG(appFa,'eventFa')

IF eventFa.trm_class = 'TRMS_NEWVALUE' THEN DO
SELECT

WHEN eventFa.trm_id = 1 THEN DO
FarbNr = eventFa.trm_data
CALL AuswahlFarbeGruppe
CALL TR_CLOSEPROJECT(window8)
endeFa = 1
Signal FarbFenster
END

WHEN eventFa.trm_id = 2 THEN DO
HfarbNr = eventFa.trm_data
CALL AuswahlFarbeHinten
CALL TR_CLOSEPROJECT(window8)
endeFa = 1
Signal FarbFenster
END

OTHERWISE;NOP
END
END
IF eventFa.trm_class = 'TRMS_ACTION' THEN DO

IF eventFa.trm_id = 3 THEN DO
CALL TR_UNLOCKPROJECT(window)
CALL TR_CLOSEPROJECT(window)
CALL TR_CLOSEPROJECT(window8)
endeFa = 1
Signal Hauptfenster
END

IF eventFa.trm_id = 4 THEN DO
EintragFarbe.0 = '2'
EintragFarbe.1 = FarbenFenster
EintragFarbe.2 = FarbeGruppe
SchreibeFarben = WRITELINES(Pfad'PrgManager.config',7,'EintragFarbe','REPLACE')
CALL TR_UNLOCKPROJECT(window)
CALL TR_CLOSEPROJECT(window)
CALL TR_CLOSEPROJECT(window8)
endeFa = 1
Signal Hauptfenster
END

IF eventFa.trm_id = 5 THEN DO
FarbenFenster = FarbenFensterAlt
FarbeGruppe = FarbeGruppeAlt
endeFa = 1
END


END

IF eventFa.trm_class = 'TRMS_CLOSEWINDOW' THEN DO
FarbenFenster = FarbenFensterAlt
FarbeGruppe = FarbeGruppeAlt
endeFa = 1
END

END
END
CALL TR_CLOSEPROJECT(window8)
CALL TR_UNLOCKPROJECT(window)
END

RETURN

AuswahlFarbeGruppe:

IF (FarbNr = '0') THEN FarbeGruppe = 'TRAT_Backfill TRBF_WINDOWBACK'
IF (FarbNr = '1') THEN FarbeGruppe = 'TRAT_Backfill TRBF_REQUESTERBACK'
IF (FarbNr = '2') THEN FarbeGruppe = 'TRAT_Backfill TRBF_NONE'
IF (FarbNr = '3') THEN FarbeGruppe = 'TRAT_Backfill TRBF_SHINE'
IF (FarbNr = '4') THEN FarbeGruppe = 'TRAT_Backfill TRBF_SHINE_SHADOW'
IF (FarbNr = '5') THEN FarbeGruppe = 'TRAT_Backfill TRBF_SHINE_FILL'
IF (FarbNr = '6') THEN FarbeGruppe = 'TRAT_Backfill TRBF_SHINE_BACKGROUND'
IF (FarbNr = '7') THEN FarbeGruppe = 'TRAT_Backfill TRBF_SHADOW'
IF (FarbNr = '8') THEN FarbeGruppe = 'TRAT_Backfill TRBF_SHADOW_FILL'
IF (FarbNr = '9') THEN FarbeGruppe = 'TRAT_Backfill TRBF_SHADOW_BACKGROUND'
IF (FarbNr = '10') THEN FarbeGruppe = 'TRAT_Backfill TRBF_FILL'
IF (FarbNr = '11') THEN FarbeGruppe = 'TRAT_Backfill TRBF_FILL_BACKGROUND'

RETURN

SucheFarbeGruppe:
IF FarbeGruppe = 'TRAT_Backfill TRBF_WINDOWBACK' THEN Gruppenzahl = '0'
IF FarbeGruppe = 'TRAT_Backfill TRBF_REQUESTERBACK' THEN Gruppenzahl = '1'
IF FarbeGruppe = 'TRAT_Backfill TRBF_NONE' THEN Gruppenzahl = '2'
IF FarbeGruppe = 'TRAT_Backfill TRBF_SHINE' THEN Gruppenzahl = '3'
IF FarbeGruppe = 'TRAT_Backfill TRBF_SHINE_SHADOW' THEN Gruppenzahl = '4'
IF FarbeGruppe = 'TRAT_Backfill TRBF_SHINE_FILL' THEN Gruppenzahl = '5'
IF FarbeGruppe = 'TRAT_Backfill TRBF_SHINE_BACKGROUND' THEN Gruppenzahl = '6'
IF FarbeGruppe = 'TRAT_Backfill TRBF_SHADOW' THEN Gruppenzahl = '7'
IF FarbeGruppe = 'TRAT_Backfill TRBF_SHADOW_FILL' THEN Gruppenzahl = '8'
IF FarbeGruppe = 'TRAT_Backfill TRBF_SHADOW_BACKGROUND' THEN Gruppenzahl = '9'
IF FarbeGruppe = 'TRAT_Backfill TRBF_FILL' THEN Gruppenzahl = '10'
IF FarbeGruppe = 'TRAT_Backfill TRBF_FILL_BACKGROUND' THEN Gruppenzahl = '11'
RETURN

AuswahlFarbeHinten:

IF (HfarbNr = '0') THEN FarbenFenster = 'TRWI_Backfill TRBF_WINDOWBACK'
IF (HfarbNr = '1') THEN FarbenFenster = 'TRWI_Backfill TRBF_REQUESTERBACK'
IF (HfarbNr = '2') THEN FarbenFenster = 'TRWI_Backfill TRBF_NONE'
IF (HfarbNr = '3') THEN FarbenFenster = 'TRWI_Backfill TRBF_SHINE'
IF (HfarbNr = '4') THEN FarbenFenster = 'TRWI_Backfill TRBF_SHINE_SHADOW'
IF (HfarbNr = '5') THEN FarbenFenster = 'TRWI_Backfill TRBF_SHINE_FILL'
IF (HfarbNr = '6') THEN FarbenFenster = 'TRWI_Backfill TRBF_SHINE_BACKGROUND'
IF (HfarbNr = '7') THEN FarbenFenster = 'TRWI_Backfill TRBF_SHADOW'
IF (HfarbNr = '8') THEN FarbenFenster = 'TRWI_Backfill TRBF_SHADOW_FILL'
IF (HfarbNr = '9') THEN FarbenFenster = 'TRWI_Backfill TRBF_SHADOW_BACKGROUND'
IF (HfarbNr = '10') THEN FarbenFenster = 'TRWI_Backfill TRBF_FILL'
IF (HfarbNr = '11') THEN FarbenFenster = 'TRWI_Backfill TRBF_FILL_BACKGROUND'

RETURN

SucheFarbeHinten:
IF FarbenFenster = 'TRWI_Backfill TRBF_WINDOWBACK' THEN Hintenzahl = '0'
IF FarbenFenster = 'TRWI_Backfill TRBF_REQUESTERBACK' THEN Hintenzahl = '1'
IF FarbenFenster = 'TRWI_Backfill TRBF_NONE' THEN Hintenzahl = '2'
IF FarbenFenster = 'TRWI_Backfill TRBF_SHINE' THEN Hintenzahl = '3'
IF FarbenFenster = 'TRWI_Backfill TRBF_SHINE_SHADOW' THEN Hintenzahl = '4'
IF FarbenFenster = 'TRWI_Backfill TRBF_SHINE_FILL' THEN Hintenzahl = '5'
IF FarbenFenster = 'TRWI_Backfill TRBF_SHINE_BACKGROUND' THEN Hintenzahl = '6'
IF FarbenFenster = 'TRWI_Backfill TRBF_SHADOW' THEN Hintenzahl = '7'
IF FarbenFenster = 'TRWI_Backfill TRBF_SHADOW_FILL' THEN Hintenzahl = '8'
IF FarbenFenster = 'TRWI_Backfill TRBF_SHADOW_BACKGROUND' THEN Hintenzahl = '9'
IF FarbenFenster = 'TRWI_Backfill TRBF_FILL' THEN Hintenzahl = '10'
IF FarbenFenster = 'TRWI_Backfill TRBF_FILL_BACKGROUND' THEN Hintenzahl = '11'
RETURN

failure:
break_c:
halt:
ioerr:
syntax:
error:

SAY '+++ Fehler' rc 'in Zeile' sigl '-' ERRORTEXT(rc)
SAY SOURCELINE(sigl)
IF app ~= '00000000'x THEN CALL TR_DELETEAPP(app)
EXIT(10)

