![]() |
Resource-File in Tokyo mit TEXT
Ich upgrade gerade einige Projekte von XE7 zu 10.2 Tokyo. In einem Projekt verwende ich eine eigene Ressource als rc-Datei mit folgendem String-Inhalt:
Code:
Zugriff im Programm dann über
codekey TEXT "codekey.txt"
Delphi-Quellcode:
Wenn ich nun bei Tokyo versuche, über "Projekt > Ressourcen und Bilder" diese Resource auf moderne Art einzubinden, so kann ich als Typ nicht TEXT auswählen, sondern RCDATA nehmen. Das Programm stürzt dann beim Zugriff auf die Resource ab.
var ACodeKey : String;
{...} ACodeKey := GetResourceAsString('codekey', 'text'); Wie bindet man denn Text-Resourcen in Tokyo ein? Ich habe auch versucht, alle möglichen Dateien (*res, otares, rc) zu löschen und sie von Tokyo neu aufbauen zu lassen, aber irgendwie klappt es nicht. In XE7 lief es tadellos. |
AW: Resource-File in Tokyo mit TEXT
Update: Ich habe jetzt das rc-File mit meiner TEXT-Resource manuell mit brcc32 zu einer Datei namens RESSOURCES.RES compiliert wie früher --- weiterhin Absturz.
Dann habe ich das Tokyo automatisch in die dpr-Datei nach der uses-Anweisung eingefügte {$R *.res } durch meinen Dateinamen ersetzt {$R RESSOURCES.RES } und VOR die uses-Anweisung verschoben und jetzt klappt es zum Glück wieder. Ich weiß aber nicht wirklich warum. Frage: Muss bei Tokyo *.res eingebunden werden und was steht eigentlich in der von Tokyo selbst angelegten res-Datei? Genügt es wie oben angegeben in der dpr-Datei nur die eigene Ressource-Datei einzubinden? Wie kann man TEXT-Resourcen anders als manuell einbinden? |
AW: Resource-File in Tokyo mit TEXT
Liste der Anhänge anzeigen (Anzahl: 2)
Moin...:P
Bei so viel Fragen ist ein Beispiel angebrachter. Anbei ein Beispielprojekt. Da mußt du das nur auf deine Gegebenheiten anpassen. :P Zitat:
Zitat:
Zitat:
![]() |
AW: Resource-File in Tokyo mit TEXT
Was genau macht denn GetResourceAsString?
|
AW: Resource-File in Tokyo mit TEXT
Also folgendes funktioniert bei mir unter Tokyo:
- unter Projekt - Ressourcen und Bilder wähle ich die passende Textdatei aus, vergebe den Namen "codekey" und schreibe bei Ressourcentyp "TEXT" hinein. - im Programm kann ich den Inhalt der Ressource mit folgendem Code auslesen:
Delphi-Quellcode:
var
lst: TStringList; stream: TResourceStream; begin stream := TResourceStream.Create(HInstance, 'codekey', 'TEXT'); try lst := TStringList.Create; try lst.LoadFromStream(stream); Memo1.Lines := lst; finally lst.Free; end; finally stream.Free; end; end; |
AW: Resource-File in Tokyo mit TEXT
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
Nachtrag Ressourcen und Bilder: 1. Wenn man einmal TEXT eingeben hat, steht es in allen Projekten zur Verfügung. Wenn man Delphi neu startet ist es wieder zurückgesetzt. 2. Wenn man die RC lädt, werden nur die Anweisungen für das automatische compilieren und die zugehörigen Dateien in die DPR bzw. das Projekt eingefügt. Der Name der compilierten Ressource ist identisch mit der RC Datei. Der Bezeichner und Typ sind nicht relevant. 3. Den Typ braucht man nur wenn man z.B. Bilder in die Projektressource (.DRES) aufnehmen will. |
AW: Resource-File in Tokyo mit TEXT
Zitat:
Delphi-Quellcode:
function GetResourceAsString(ResName: pchar; ResType: pchar): string;
var ResData: PChar; ResSize: Longword; begin ResData := GetResourceAsPointer(resname, restype, ResSize); SetString(Result, ResData, ResSize); end; |
AW: Resource-File in Tokyo mit TEXT
Zitat:
|
AW: Resource-File in Tokyo mit TEXT
Zitat:
Wie schaut also GetResourceAsPointer aus? |
AW: Resource-File in Tokyo mit TEXT
Zitat:
Delphi zickt aber leider bei mir massiv rum. Ich habe jetzt mal testweise {$R CODEKEY.RES CODEKEY.RC } eingebaut, aber es wird keine RES-Datei erzeugt. Die Compilierung misslang mit der Meldung "BRCC32 failed unexpectedly. FilenotFoundException: ... RESSOUCRES.RC nicht gefunden." -- Delphi hatte sich also irgendwo gemerkt, dass ich früher mal RESSOURCES.RES verwendet habe. Nur wo? Unter Projekt > Ressourcen ist alles leer, andere $R-Befehle kommen nicht vor. Ich habe darauf hin *.dproj und weitere Projekt-Dateien gelöscht und das Projekt neu geöffnet. Damit verschwand dann die Fehlermeldung. Allerdings wird immer noch keine CODEKEY.RES erzeugt, obwohl die Compilierung fehlerfrei durchläuft! Dann habe ich {$R CODEKEY.RES CODEKEY.RC } um die Anführungszeichen ergänzt: {$R 'CODEKEY.RES' 'CODEKEY.RC' } -- jetzt erzeugt er eine CODEKEY.RES, aber die Compilierung failed mit entsprechender Fehlermeldung "FilenotFoundException: ... CODEKEY.RC nicht gefunden. Was für ein Widerspruch in sich, wo er doch die RES-Datei erzeugt... Ich weiß nicht weiter. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz