2017-05-16 2 views
1
gefunden

In Formcreate Prozedur ich schreiben:Ressource konnte nicht Datei 'Rechte'

var f: TResourceStream; 
    begin 
    // load data about rights from rights.txt resource file 
    f := TResourceStream.create(Hinstance, 'rights', PChar('RT_RCDATA')); 
    try 
    LoadFromStream(f); 
    finally 
    f.free; 
    end; 

und erhalten Fehler:

Project1.exe raised exception class ERESNotFound with message 'Resource rights not found'. 

wenn ich ändern 'Rechte' Dateipfad auf:

'rights.txt'   or 
'D:\Example\rights.txt' or 
'D:\Example\rights' 

Ich bekomme den gleichen Fehler!

rights.txt-Datei Ich finde beide im Projektordner und in win32 \ debug \ project1.exe Ordner, aber der gleiche Fehler tritt auf.

UPDATE 1

PopupMenu with access rights

rights.txt file for loading popupmenu

was diese undefinierten simbols in rights.txt Datei sein?

+0

Sie haben t o kompilieren RC-Daten zu Res mit entweder dem Ressourcen-Compiler oder auf späteren Delphi-Versionen kann dies über das Projekt, Ressourcen-Menü behandelt werden Ich glaube, es ist, haben Sie das zuerst getan, nicht wahr? – Craig

+0

Ich gebe "Projekt" -> "Ressourcen und Bilder" ein und füge 'rights.txt' Datei zu resouces hinzu aber keine Reihe erscheint in Projektdatei nach Gebrauch. Ich sehe nur {$ R * .res} und der gleiche Fehler erscheint. Delphi-Version: 10.1 Berlin – Delphi159

+0

Ich sehe bereits 'rights.txt' Datei im Projektmanager, aber der gleiche Fehler erscheint. – Delphi159

Antwort

3

Sie müssen den ResType Parameter zu RT_RCDATA statt PChar('RT_RCDATA')

f := TResourceStream.create(Hinstance, 'rights', RT_RCDATA); 

Die RT_RCDATA definiert in System.Types Einheit ändern, wie

const 
    RT_RCDATA  = PChar(10); 

folgen So kann man es auch so

f := TResourceStream.create(Hinstance, 'rights', PChar(10)); 
verwenden
+1

Wenn Sie einen Ressourcentyp direkt anstelle einer vordefinierten Konstante angeben, sollten Sie stattdessen 'MakeIntResource() '' verwenden, zB: 'f: = TResourceStream.create (Hinstance,' rights ', MakeIntResource (10)) ; ' –

+0

Ich habe die Datei 'rights.txt'. in 'notapad ++' benenne ich es in 'rights.rc' um. Dann in "Projekt" - "Ressource und Bilder" ich hinzufügen. RC-Datei zu Project und {$ R 'righths.res' 'righths.rc'} erscheinen in Project1.dpr Datei. Nach dem Drücken von "Strg + F9" und ich bekomme einen Fehler: "schlechte Zeichen in der Quelle eingegeben". Es gibt viele nicht druckbare Zeichen in der 'rights.txt Datei', wie zB: STX, SOH, GS usw. – Delphi159

+0

@ Delphi159 Behalte die Dateierweiterung so wie sie ist ('.txt') oder benenne sie in etwas anderes um '.rc' und fügen Sie es der Ressource und den Bildern als' RCData' ** Ressourcentyp ** hinzu. Vergessen Sie nicht, die Datei 'rights.rc' aus dem ** Projektmanager ** – RepeatUntil

Verwandte Themen