Seite 1 von 2

RCData UserLib

Verfasst: 04.11.2005 11:13
von ts-soft
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

Re: RCData UserLib

Verfasst: 04.11.2005 13:47
von benny
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!!!
...
@ts-soft:

Komme leider momentan nicht zum Testen. Aber das hört sich ja schonmal
vielversprechend an :!:

:allright:

Verfasst: 04.11.2005 15:13
von ts-soft
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 :freak:
Aber laut MSDN müßte es so sein :mrgreen:
Hab aber sowieso langsam meine Zweifel, das PB Speicher freigibt, wenn man ihm das sagt :roll:
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?

Verfasst: 05.11.2005 20:29
von MVXA
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:
:allright: :allright: :allright: :allright: :allright: :allright: :allright: :allright: :allright: :(

Verfasst: 05.11.2005 20:55
von ts-soft
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

Verfasst: 10.11.2005 23:10
von Donald
Hi TS....,

nicht schlecht, habs zwar noch nicht komplett getestet aber werde
es für mein nächstes Projekt nutzen.

Donald

Verfasst: 10.11.2005 23:30
von ts-soft
Danke für das Lob :allright: Ich denke es gibt sehr viele Anwendungsfälle dafür, wenn man den Schrecken vor dem Resource-Skript einmal verloren hat :wink:

Verfasst: 02.04.2006 11:24
von ts-soft
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ß

Verfasst: 02.04.2006 15:46
von mk-soft
Hi,

komme leider auch noch nicht zum testen. Muss jetzt erstmal auf Montage Computer AD :cry: .
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 :wink:

Verfasst: 02.04.2006 19:03
von H.Brill
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 ?