Autor Beitrag
bf109g.01
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84



BeitragVerfasst: Do 14.04.11 08:27 
Hallo, ich habe in meinem Form1 ein TMemo, dessen Zeilen ich mit dem Inhalt einer TXT_Datei füllen will.
Diese TXT ist in meinem file.rc als Ressource mit eingebunden.
Ich habe jetzt folgendes versucht: TMemo.Lines.Add(LoadFromResourceName(HInstance, 'Txt_Hist')); und auch dieses versucht: TMemo.Lines.LoadFromResourceName(HInstance, 'Txt_Hist'));
Aber das funktioniert wohl nicht. Wie bekomme ich das geladen?

THX & LG
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 14.04.11 08:35 
user profile iconbf109g.01 hat folgendes geschrieben Zum zitierten Posting springen:
Aber das funktioniert wohl nicht.
Es wäre mir neu, dass LoadFromResourceName irgendwo anders als in Grafik-Klassen existiert. :nixweiss:

Wie wäre es mit TResourceStream und dann LoadFromStream bei den Lines deines Memos?
bf109g.01 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84



BeitragVerfasst: Do 14.04.11 09:10 
Moderiert von user profile iconNarses: Komplett-Zitat des letzten Beitrags entfernt.

Ich habe die TXT datei zu den Sounds und Bildern in die Res-Datei gepackt.
Wie ich die mit deinen Hinweisen aufrufen soll, geht mir nicht auf, habe aber auch keine Ahnung davon, muss also über Try&Error basteln:
Lines.LoadfromStream(HInstance, 'Txt_Hist');:[Pascal Fehler] Spiel.pas(493): E2010 Inkompatible Typen: 'TStream' und 'Cardinal'
Lines.TResourceStream(HInstance, 'Txt_Hist');:[Pascal Fehler] Spiel.pas(493): E2003 Undefinierter Bezeichner: 'TResourceStream'

Kp, vllt setze ich da einfach nur alles falsch zusammen... :(
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 14.04.11 09:42 
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 14.04.11 09:45 
Moin!

Deklariere den Text als resourcestring und "lade" ihn per Zuweisung an Memo1.Lines.Text := MyResourceString;, dann kümmert sich der Compiler darum, das richtig zu verpacken. :idea:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 14.04.11 10:22 
ausblenden Quelltext
1:
ExcludeList RCDATA DISCARDABLE "exclude.lst"					


ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
function LoadTextFromResourceByName(ResourceName: ansiString): AnsiString;
var
  ResourceStream: TResourceStream;
begin
  ResourceStream := TResourceStream.Create(HInstance, ResourceName, RT_RCDATA);
  try
    try
      SetLength(Result, ResourceStream.Size);
      ResourceStream.ReadBuffer(Result[1], ResourceStream.Size);
    except
      raise;
    end;
  finally
    ResourceStream.Free;
  end;
end;

function LoadTextFromResourceByID(ResourceID: Cardinal): AnsiString;
var
  ResourceStream: TResourceStream;
begin
  ResourceStream := TResourceStream.CreateFromID(HInstance, ResourceID, RT_RCDATA);
  try
    try
      SetLength(Result, ResourceStream.Size);
      ResourceStream.ReadBuffer(Result[1], ResourceStream.Size);
    except
      raise;
    end;
  finally
    ResourceStream.Free;
  end;
end;
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 14.04.11 10:55 
Das try..except..raise ist doch irgendwie sinnfrei. :gruebel:
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 14.04.11 10:55 
Warum?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 14.04.11 11:17 
Weil du die Exception abfängst und die gleiche dann direkt wieder wirfst. Da kommt das gleiche heraus als ob du sie erst gar nicht behandelst.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 14.04.11 12:02 
Ach so, das meinst du. Ist eine Angewohnheit von mir, weil ich dort eventuell noch eigen Exceptions werfe.
bf109g.01 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84



BeitragVerfasst: Sa 16.04.11 12:06 
Ich habe jetzt folgendes:

Datei "t.rc": Text RT_RCDATA Hist.txt
t.res ist eingebunden: {$R t.res}

Jetzt das Programm:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
var
  RS: TResourceStream;
begin
  RS := TResourceStream.Create(HInstance,'Text', RT_RCDATA);
try
    Memo1.Lines.LoadFromStream(RS);
  finally
    RS.Free;
  end;
end;

Und der Fehler:
Zitat:
Ressource Test wurde nicht gefunden


Was läuft da bitte falsch?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 16.04.11 12:12 
In dem Ressourcenskript muss stehen:
ausblenden Quelltext
1:
Text RCDATA Hist.txt					
Das RT davor steht in Delphi einfach für Resource Type. ;-)

Für diesen Beitrag haben gedankt: bf109g.01
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Sa 16.04.11 12:22 
Versuchs mal damit...
Einloggen, um Attachments anzusehen!
_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS