2012-09-08 10 views
5

Uso Delphi XE Starter. Ho creato un file CCs.RC e ho aggiunto quel file al progetto. Una linea tipica nel mio file CCs.RC assomiglia a questo:Lettura di un elenco di stringhe da un file di risorse

Danish1cc Text Danish1.cc 

Subito dopo una linea di Attuazione Ho aggiunto

{$R CCs} 

Quando provo a leggere questo file in uno stringlist esistente, ottengo un messaggio di errore [EResNotFound][1]. Ecco il codice che ho usato per cercare di leggere il file:

procedure LoadStringListFromResource(const ResName: string;SL : TStringList); 
var 
    RS: TResourceStream; 
begin 
    RS := TResourceStream.Create(HInstance, ResName, RT_RCDATA); 
    try 
    SL.LoadFromStream(RS); 
    finally 
    RS.Free; 
    end; 
end; 
/// 
LoadStringListFromResource('Danish1cc',MySL) 

Il mio obiettivo è quello di incorporare il file nel mio EXE e, naturalmente, essere in grado di leggerlo :) Grazie per tutto l'aiuto.

risposta

9

Il tipo di risorsa non corrisponde. Nel tuo file * .RC usi TEXT mentre nel tuo codice usi RCDATA. È necessario sia modificare il file RC * a

Danish1cc RCDATA Danish1.cc 

Oppure è necessario modificare

RS := TResourceStream.Create(HInstance, ResName, RT_RCDATA); 

a

RS := TResourceStream.Create(HInstance, ResName, 'Text'); 
+3

Sì, ed ecco la relativa documentazione: [Istruzioni Resource-Definition] (http://msdn.microsoft.com/en-us/library/windows/ desktop/aa381043% 28v = vs.85% 29.aspx) –

0

Credo che il problema è con questa linea - {$R CCs}

Hai compilato un file di risorse, non è quel file chiamato CCs.res?

se modo che la linea nel codice dovrebbe essere {$R CCs.res}

+2

In tal caso otterrebbe un messaggio di errore del compilatore, ma ottiene un'eccezione EResNotFound in fase di esecuzione. –

+0

Siete corretti, scuse –

Problemi correlati