kannst ja meinen UDRes - Manager verwenden. Den benutze
ich immer wieder, zur Erstellung meiner Resourcen. Ist so
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 Datei erstellen")
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))
PreferenceGroup(Str(lfnr))
WritePreferenceString("Gepackt", Str(gepackt))
WritePreferenceString("File", tempfile)
Next i
ClosePreferences()
MessageRequester("Info", "Datei : " + pfile + " gespeichert !", #PB_MessageRequester_Ok)
EndIf
EndProcedure
Procedure LoadProjekt(pfile.s)
Protected file.s, gepackt.s, stdwert.s, Gruppe.s
Protected k.l
k = 0
stdwert = " "
ClearGadgetItemList(#MyGadget)
If ExaminePreferenceGroups() <> 0
While NextPreferenceGroup() <> 0
Gruppe = PreferenceGroupName()
gepackt = ReadPreferenceString("Gepackt", stdwert)
file = ReadPreferenceString("File", stdwert)
item = "Gepackt" + #LF$ + Gruppe + #LF$ + file
AddGadgetItem(#MyGadget, -1, item)
If gepackt = "1"
SetGadgetItemState(#MyGadget, k, #PB_ListIcon_Checked)
EndIf
k = k + 1
Wend
EndIf
ClosePreferences()
EndProcedure