RCData UserLib

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
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

Beitrag 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
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.
Bild
Benutzeravatar
benny
Beiträge: 383
Registriert: 29.08.2004 09:18
Wohnort: Am Ende des www's
Kontaktdaten:

Re: RCData UserLib

Beitrag 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:
So long,
benny!
.
nur t0te f1sche schw1mmen m1t dem str0m - 00100 !
Benutzeravatar
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

Beitrag 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?
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.
Bild
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag 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: :(
Bild
Benutzeravatar
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

Beitrag 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
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.
Bild
Benutzeravatar
Donald
Beiträge: 307
Registriert: 03.01.2005 02:21
Wohnort: Marl

Beitrag von Donald »

Hi TS....,

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

Donald
DONALD :D www.PureBasic-Donald.de gibt es im Moment nicht mehr
PureBasic - jaPBe - PureVisonXP - TailBite
Benutzeravatar
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

Beitrag 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:
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.
Bild
Benutzeravatar
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

Beitrag 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ß
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.
Bild
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag 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:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
H.Brill
Beiträge: 496
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

Beitrag 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 ?
Antworten