Resource einbinden und benutzen?

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
MmVisual
Beiträge: 1581
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
CPU-Target: 32/64Bit

Resource einbinden und benutzen?

Beitrag von MmVisual »

Hallo,

Ich möchte gerne eine CSV-Text-Datei mit mein Projekt einbinden. Dazu habe ich das gefunden:

http://wiki.lazarus.freepascal.org/Lazarus_Resources/de" onclick="window.open(this.href);return false;

Dann mal los gelegt:

Code: Alles auswählen

D:\lazres smdcodes.lrs smdcodes.csv
smdcodes.csv ResourceName='smdcodes' Type='CSV'
Und es gab eine neue Datei "smdcodes.lrs".

Im Code, im Main-Formular:

Code: Alles auswählen

initialization
{$I smdcodes.lrs}
 
End.
Doch der Kompiler sag dann:

Code: Alles auswählen

smdcodes.lrs(1,17) Error: Identifier not found "LazarusResources"
smdcodes.lrs(65,3) Error: Type conflict between set elements
fMain.pas(7064) Fatal: There were 2 errors compiling module, stopping
Hm, Was hab ich falsch gemacht?
(Die Datei hat ca. 220 KB)

Dann hab ich das Problem, wie bekomme ich die Ressource in eine TStringList?
TStringList.LoadFromLazarusResource() gibts ja nicht.

Danke im Voraus für eure Hilfe. Gruß Markus.

PS: in anderen Threads hab ich auch nichts gefunden.

Benutzeravatar
theo
Beiträge: 10895
Registriert: Mo 11. Sep 2006, 19:01

Re: Resource einbinden und benutzen?

Beitrag von theo »

Da musst du wahrsch. unit LResources aufnehmen.

Zum Laden: Bin nicht ganz sicher, aber es gibt TLazarusResourceStream in dieser Unit.
Damit kannst du wahrsch. die Res. in einen Stream laden und StringList.LoadFromStream machen.

MmVisual
Beiträge: 1581
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Resource einbinden und benutzen?

Beitrag von MmVisual »

Klasse, klappt !!! :D
Danke, theo!

Code: Alles auswählen

procedure TfrmMain.Memo1DblClick(Sender: TObject);
Var st: TLazarusResourceStream;
begin
  st := TLazarusResourceStream.Create('smdcodes', 'CSV');
  memo1.Lines.LoadFromStream(st);
  st.Free;
end;
Vielleicht sollte das auch in der Seite mit rein genommen werden:
http://wiki.lazarus.freepascal.org/Lazarus_Resources/de" onclick="window.open(this.href);return false;
Ich meinte, LResources und TLazarusResourceStream. Dann wäre die Doku komplett.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Antworten