RCData UserLib
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
RCData UserLib
Achtung! Neue Version für PB 4.x
Diese Library dient als Alternative zu IncludeBinary unter Windows
Es wird nur ein ResourceTyp unterstützt, RC_DATA, benutzerdefinierte Daten.
NEU NEU NEU Die Daten können auch von Fremdprogrammen, DLLs usw.
geladen werden !!!!
Diese können auf 3 Arten hinzugefügt werden:
1. Dateien als My Resource mit jaPBe hinzufügen
2. Als compilierte *.res per Import "Name.res" : EndImport
*3. *.rc - Skript erstellen und mit der neuen IDE hinzufügen.
*Das Resourcenskript erfordert je Resource 3 Angaben in einer Zeile:
Name = Der Name, der für RCData_Load benötigt wird
RC_DATA = Immer gleich
Pfad = Absoluter Pfad in Anführungszeichen
Folgende Vorteile hat man durch Nutzung dieser Lib:
Resourcen werden nur bei bedarf geladen (Windows lädt Resourcen beim Ausführen der Exe nicht mit in den Speicher.
Resourcen befinden sich auch bei Verwendung nur einmal im Speicher!!!
Für die wichtigsten Grundfunktionen wurden mehrere Examples beigefügt.
Feedback, Fehlermeldungen usw. erwünscht. Bei Bedarf soll die Lib noch
ausgebaut werden!
http://purebasic.ts-soft-online.de/dl/rcdata.zip
enthält unter anderm folgende Funktionen:
RCData_CatchImage, RCData_CatchSound und RCData_CatchSprite
mit #PB_Any Support
Diese Library dient als Alternative zu IncludeBinary unter Windows
Es wird nur ein ResourceTyp unterstützt, RC_DATA, benutzerdefinierte Daten.
NEU NEU NEU Die Daten können auch von Fremdprogrammen, DLLs usw.
geladen werden !!!!
Diese können auf 3 Arten hinzugefügt werden:
1. Dateien als My Resource mit jaPBe hinzufügen
2. Als compilierte *.res per Import "Name.res" : EndImport
*3. *.rc - Skript erstellen und mit der neuen IDE hinzufügen.
*Das Resourcenskript erfordert je Resource 3 Angaben in einer Zeile:
Name = Der Name, der für RCData_Load benötigt wird
RC_DATA = Immer gleich
Pfad = Absoluter Pfad in Anführungszeichen
Folgende Vorteile hat man durch Nutzung dieser Lib:
Resourcen werden nur bei bedarf geladen (Windows lädt Resourcen beim Ausführen der Exe nicht mit in den Speicher.
Resourcen befinden sich auch bei Verwendung nur einmal im Speicher!!!
Für die wichtigsten Grundfunktionen wurden mehrere Examples beigefügt.
Feedback, Fehlermeldungen usw. erwünscht. Bei Bedarf soll die Lib noch
ausgebaut werden!
http://purebasic.ts-soft-online.de/dl/rcdata.zip
enthält unter anderm folgende Funktionen:
RCData_CatchImage, RCData_CatchSound und RCData_CatchSprite
mit #PB_Any Support
Zuletzt geändert von ts-soft am 03.04.2006 13:08, insgesamt 5-mal geändert.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: RCData UserLib
@ts-soft:ts-soft hat geschrieben:...
Folgende Vorteile hat man durch Nutzung dieser Lib:
Resourcen werden nur bei bedarf geladen (Windows lädt Resourcen beim
Ausführen der Exe nicht mit in den Speicher).
Resourcen befinden sich auch bei Verwendung nur einmal im Speicher!!!
...
Komme leider momentan nicht zum Testen. Aber das hört sich ja schonmal
vielversprechend an


So long,
benny!
.
nur t0te f1sche schw1mmen m1t dem str0m - 00100 !
benny!
.
nur t0te f1sche schw1mmen m1t dem str0m - 00100 !
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Ich weiß leider auch nicht genau, wie man dieses überprüft. Im Taskmanager kann man es ja nicht allzu genau erkennen. Den erhöhten Verbrauch nach Catchen eines Bildes kann man erkennen, aber wenn man dieses wieder freigibt (sowie die Resource) ändert sich nichts
Aber laut MSDN müßte es so sein
Hab aber sowieso langsam meine Zweifel, das PB Speicher freigibt, wenn man ihm das sagt
Vielleicht kann einer besser testen als ich, dann Wissen wir es
[EDIT]
Ich hab jetzt ein kl. Consolenprogramm erstellt in 2 Versionen, mit und ohne Resource (ohne Bild). Beim start belegen beide laut Taskmanager ca. 1 MB, das heißt, die Resource befindet sich nicht im Speicher, nach catchen des Bildes (1 MB) sind es dann 2. Scheint also richtig zu sein, nur freigegeben krieg ich es nicht. Reicht FreeImage nicht?

Aber laut MSDN müßte es so sein

Hab aber sowieso langsam meine Zweifel, das PB Speicher freigibt, wenn man ihm das sagt

Vielleicht kann einer besser testen als ich, dann Wissen wir es
[EDIT]
Ich hab jetzt ein kl. Consolenprogramm erstellt in 2 Versionen, mit und ohne Resource (ohne Bild). Beim start belegen beide laut Taskmanager ca. 1 MB, das heißt, die Resource befindet sich nicht im Speicher, nach catchen des Bildes (1 MB) sind es dann 2. Scheint also richtig zu sein, nur freigegeben krieg ich es nicht. Reicht FreeImage nicht?
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Eine meiner Meinung nach sehr gute und brauchbare Userlib. Sie ist die
perfekte Alternative zu den [c]IncludeBinary[/c] Befehlen von PureBasic. Sie
erleichtert das Arbeiten mit Resourcen und die Verwaltung ist auch besser
gelöst. Die Userlib ist ideal, wenn man Soundclips oder Icons zu seinem
Programm hinzufügen möchte ohne vorher selbst mit Catch***** arbeiten
zu müssen.
Einziges Problem stellt hier PORC. Die Pfade dürfen nicht relativ sein und
es müssen doppelte Backslashes gesetz werden. Hier ein kleines Beispiel:
C:\\Projekte\\DeinProjekt\\Test.dll
Von mir gibts 9 Sterne:

perfekte Alternative zu den [c]IncludeBinary[/c] Befehlen von PureBasic. Sie
erleichtert das Arbeiten mit Resourcen und die Verwaltung ist auch besser
gelöst. Die Userlib ist ideal, wenn man Soundclips oder Icons zu seinem
Programm hinzufügen möchte ohne vorher selbst mit Catch***** arbeiten
zu müssen.
Einziges Problem stellt hier PORC. Die Pfade dürfen nicht relativ sein und
es müssen doppelte Backslashes gesetz werden. Hier ein kleines Beispiel:
C:\\Projekte\\DeinProjekt\\Test.dll
Von mir gibts 9 Sterne:










- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
thx, freut mich ja, wenn es doch benutzt wird.
Ohne die Verwaltung wäre die Lib ja auch ein wenig sinnlos. Man kann alles machen, was mit IncludeBinary auch geht, jedoch werden die Resourcen nicht mit der Exe geladen sondern erst bei abruf. Statt der blöden Labels mit ? kann man einfach die MemoryAdresse ermitteln, genauso wie die Länge. Speicher funktion zum Extrahieren ist auch dabei.
Alle CatchFunktionen von PB stehen mit fast Identischer Syntax zur Verfügung!
Beispiel wurden jetzt auch vervollständigt. Ein Example für RTF-Text als Resource wurde beigefügt.
Viel Spaß damit
//Nachtrag: Jetzt noch ein weiteres Example unter Nutzung von *.gdf Dateien (Binäre FormDesigner-Dateien von gDesign bei Mischa) hinzugefügt!
Fehlerbehandlung verbessert, Version 1.1
Ohne die Verwaltung wäre die Lib ja auch ein wenig sinnlos. Man kann alles machen, was mit IncludeBinary auch geht, jedoch werden die Resourcen nicht mit der Exe geladen sondern erst bei abruf. Statt der blöden Labels mit ? kann man einfach die MemoryAdresse ermitteln, genauso wie die Länge. Speicher funktion zum Extrahieren ist auch dabei.
Alle CatchFunktionen von PB stehen mit fast Identischer Syntax zur Verfügung!
Beispiel wurden jetzt auch vervollständigt. Ein Example für RTF-Text als Resource wurde beigefügt.
Viel Spaß damit
//Nachtrag: Jetzt noch ein weiteres Example unter Nutzung von *.gdf Dateien (Binäre FormDesigner-Dateien von gDesign bei Mischa) hinzugefügt!
Fehlerbehandlung verbessert, Version 1.1
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Hi TS....,
nicht schlecht, habs zwar noch nicht komplett getestet aber werde
es für mein nächstes Projekt nutzen.
Donald
nicht schlecht, habs zwar noch nicht komplett getestet aber werde
es für mein nächstes Projekt nutzen.
Donald
DONALD
www.PureBasic-Donald.de gibt es im Moment nicht mehr
PureBasic - jaPBe - PureVisonXP - TailBite

PureBasic - jaPBe - PureVisonXP - TailBite
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Danke für das Lob
Ich denke es gibt sehr viele Anwendungsfälle dafür, wenn man den Schrecken vor dem Resource-Skript einmal verloren hat 


PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Update: Neue Version für PB 4.x
Unterstützt jetzt auch My Resource von jaPBe!
(Siehe Projekt-Optionen Resourcen)
Compilierte *.res Dateien, zum Beispiel mit XN - ResourceEditor erstellte
werden auch unterstützt (können per Importfunktion von PB4 hinzugefügt werden) Freeware: http://www.wilsonc.demon.co.uk/delphi.htm
Source wurde auch hinzugefügt, Examples ergänzt und Hilfe aktualisiert!
Viel Spaß
Unterstützt jetzt auch My Resource von jaPBe!
(Siehe Projekt-Optionen Resourcen)
Compilierte *.res Dateien, zum Beispiel mit XN - ResourceEditor erstellte
werden auch unterstützt (können per Importfunktion von PB4 hinzugefügt werden) Freeware: http://www.wilsonc.demon.co.uk/delphi.htm
Source wurde auch hinzugefügt, Examples ergänzt und Hilfe aktualisiert!
Viel Spaß
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Hi,
komme leider auch noch nicht zum testen. Muss jetzt erstmal auf Montage Computer AD
.
Bei Windows habe ich festgestellt das der Speicher woll erst reorganisiert wird wenn das Fenster in die Taskleiste abgelegt wird. Daher Minimiere ich das Fenster erst , wenn ich mit SysTray arbeite, und danach ein Hide.
FF
komme leider auch noch nicht zum testen. Muss jetzt erstmal auf Montage Computer AD

Bei Windows habe ich festgestellt das der Speicher woll erst reorganisiert wird wenn das Fenster in die Taskleiste abgelegt wird. Daher Minimiere ich das Fenster erst , wenn ich mit SysTray arbeite, und danach ein Hide.
FF

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Bekomme es im Moment nicht zum Laufen,
da z. B. Dateien nicht gefunden wurden.
Dann kommt noch ne Fehlermeldung über
ein nicht aufgelöstes Symbol : __IMP__iob .
Ist doch richtig, daß ich bei den Compiler Optionen
bei Ressource eine .rc - Datei (Script) einbinde ?
Ist mal bei mir als Standard so eingestellt. Andereseits
gehts bei der compilerten RC zu .RES auch nicht.
Eventuell wäre eine Beschreibung der Vorgehensweise
für nicht so Begabte nicht schlecht.
PS : Was kann ich denn damit genau machen :
RCData_Save(Nr.l, FileName.s)
bzw. was kann man damit speichern ?
.RC, .RES oder egal, was für Dateien ?
da z. B. Dateien nicht gefunden wurden.
Dann kommt noch ne Fehlermeldung über
ein nicht aufgelöstes Symbol : __IMP__iob .
Ist doch richtig, daß ich bei den Compiler Optionen
bei Ressource eine .rc - Datei (Script) einbinde ?
Ist mal bei mir als Standard so eingestellt. Andereseits
gehts bei der compilerten RC zu .RES auch nicht.
Eventuell wäre eine Beschreibung der Vorgehensweise
für nicht so Begabte nicht schlecht.
PS : Was kann ich denn damit genau machen :
RCData_Save(Nr.l, FileName.s)
bzw. was kann man damit speichern ?
.RC, .RES oder egal, was für Dateien ?