Hab mal nen kleinen Resourcen - Manager angefangen.
die Quellcodes der dazugehörigen Programme. Sinnvollerweise
haben, wie die .res - Datei.
Checkboxen in der Preferencedatei zusätzlich speichern bzw.
Code: Alles auswählen
Global pfile.s, rfile.s, dfile.s, daten.s, item.s
Global nr.l, count.l, erfolg.l, Quit.l
Declare CompileRes(fname.s)
Declare SaveProjekt(pfile.s)
Declare LoadProjekt(pfile.s)
#MyWindow = 0
#MyGadget = 100
If OpenWindow(#MyWindow,100,100,800,400,"Resourcen - Manager",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#MyWindow))
ButtonGadget(1, 450, 10, 100, 25, "Ende")
ButtonGadget(2, 10, 10, 100, 25, "Speichere Projekt")
ButtonGadget(3, 10, 40, 100, 25, "Lade Projekt")
ButtonGadget(4, 150, 10, 100, 25, "Datei einfügen")
ButtonGadget(5, 150, 40, 100, 25, ".Res Compilieren")
ButtonGadget(6, 290, 10, 100, 25, "Liste löschen")
ListIconGadget(#MyGadget,5, 100, 700, 280,"Pack",80,#PB_ListIcon_FullRowSelect|#PB_ListIcon_GridLines|#PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_CheckBoxes)
AddGadgetColumn(#MyGadget, 1, "Nummer", 60)
AddGadgetColumn(#MyGadget,2,"Dateiname",520)
Quit = 0
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_Event_Gadget
Select EventGadget()
Case 1
Quit = 1
Case 2
; Neues Projekt speichern
Pattern$ = "Resource - Dateien (*.prj)|*.prj"
Pattern = 0 ; wir verwenden den ersten von drei möglichen Pattern als Standard
pfile = SaveFileRequester("Bitte Datei zum Laden auswählen", "C:\", Pattern$, Pattern)
If pfile
erfolg = CreatePreferences(pfile)
If erfolg = 0
MessageRequester("Projekt", "Datei : " + pfile + " konnte nicht erstellt werden !", #PB_MessageRequester_Ok)
Else
SaveProjekt(pfile)
EndIf
EndIf
Case 3
; Lade Projekt
Pattern$ = "Resource - Dateien (*.prj)|*.prj"
Pattern = 0 ; wir verwenden den ersten von drei möglichen Pattern als Standard
pfile = OpenFileRequester("Bitte Datei zum Laden auswählen", "C:\", Pattern$, Pattern)
If pfile
erfolg = OpenPreferences(pfile)
If erfolg <> 0
LoadProjekt(pfile)
Else
MessageRequester("Projekt", "Datei : " + pfile + " konnte nicht gefunden werden !", #PB_MessageRequester_Ok)
EndIf
EndIf
Case 4
; Datei einfügen
Pattern$ = "Alle Dateien (*.*)|*.*"
Pattern = 0 ; wir verwenden den ersten von drei möglichen Pattern als Standard
dfile = OpenFileRequester("Bitte Datei zum Laden auswählen", "C:\", Pattern$, Pattern)
If dfile
count = CountGadgetItems(#MyGadget)
item = "Gepackt" + Chr(10) + Str(count + 1) + Chr(10) + dfile
AddGadgetItem(#MyGadget, -1, item)
EndIf
Case 5
; Res - Datei kompileren
Pattern$ = "Resource - Dateien (*.res)|*.res"
Pattern = 0 ; wir verwenden den ersten von drei möglichen Pattern als Standard
rfile = SaveFileRequester("Bitte Datei zum Laden auswählen", "C:\", Pattern$, Pattern)
If rfile
CompileRes(rfile)
EndIf
Case 6
; Liste löschen
ClearGadgetItemList(#MyGadget)
Case 100 ; ListIcon - Gadget
; wenn ein Eintrag gewählt wurde, werden die Eingabefelder
; entsprechend gefüllt.
EndSelect
EndSelect
Until Quit = 1 Or EventID = #PB_Event_CloseWindow
EndIf
EndIf
CloseWindow(#MyWindow)
End
Procedure CompileRes(fname.s)
Protected i.l, gepackt.l, check.l, FileID.l, lfnr.l
Protected tempfile.s
count = CountGadgetItems(#MyGadget)
If count > 0
If fname <> ""
FileID = UDRes_Create(fname)
If FileID
For i = 0 To count - 1
gepackt = 0
check = GetGadgetItemState(#MyGadget, i)
If check & #PB_ListIcon_Checked
gepackt = 1
Else
gepackt = 0
EndIf
tempfile = GetGadgetItemText(#MyGadget, i, 2)
lfnr = Val(GetGadgetItemText(#MyGadget, i, 1))
Select gepackt
Case 0
UDRes_AddFile(FileID, tempfile, lfnr)
Case 1
UDRes_AddPackFile(FileID, tempfile, lfnr)
EndSelect
Next i
UDRes_Close(FileID)
MessageRequester("Packen...", "Datei : " + fname + " compiliert !", #PB_MessageRequester_Ok)
EndIf
EndIf
Else
MessageRequester("Packen...", "Keine Einträge vorhanden !", #PB_MessageRequester_Ok)
EndIf
EndProcedure
Procedure SaveProjekt(pfile.s)
Protected i.l, gepackt.l, check.l, FileID.l, lfnr.l
Protected tempfile.s
count = CountGadgetItems(#MyGadget)
If count > 0
For i = 0 To count - 1
gepackt = 0
check = GetGadgetItemState(#MyGadget, i)
If check & #PB_ListIcon_Checked
gepackt = 1
Else
gepackt = 0
EndIf
tempfile = GetGadgetItemText(#MyGadget, i, 2)
lfnr = Val(GetGadgetItemText(#MyGadget, i, 1))
WritePreferenceString(Str(lfnr), tempfile)
Next i
ClosePreferences()
MessageRequester("Info", "Datei : " + pfile + " gespeichert !", #PB_MessageRequester_Ok)
EndIf
EndProcedure
Procedure LoadProjekt(pfile.s)
ClearGadgetItemList(#MyGadget)
If ExaminePreferenceKeys() <> 0
Repeat
item = "Gepackt" + Chr(10) + PreferenceKeyName() + Chr(10) + PreferenceKeyValue()
AddGadgetItem(#MyGadget, -1, item)
Until NextPreferenceKey() = 0
EndIf
ClosePreferences()
EndProcedure