Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Text mit TResourceStream laden (https://www.delphipraxis.net/159821-text-mit-tresourcestream-laden.html)

Luckie 14. Apr 2011 10:28

Text mit TResourceStream laden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe gerade mal versucht eine Textdatei, die als Ressource eingebunden ist mit TResourceStream zu laden. Über die ID geht es wunderbar, nur über den Namen nicht.

Delphi-Quellcode:
{$R resource.res}

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;

procedure TForm1.Button1Click(Sender: TObject);
begin
  try
    //Memo1.Text := LoadTextFromResourceByID(100);
    Memo1.Text := LoadTextFromResourceByName('ExcludeList');
  except
    on E: Exception do
      ShowMessage(E.Message);
  end;
end;
Code:
#define ExcludeList 100

ExcludeList RCDATA DISCARDABLE "exclude.lst"
Kann mir bitte jemand sagen, was ich da falsch mache?

Entwicklungsumgebung ist Delphi 7.

DeddyH 14. Apr 2011 10:36

AW: Text mit TResourceStream laden
 
Ich mag mich täuschen, aber vermutlich deklarierst Du mit der define-Anweisung eine Konstante namens ExcludeList, welche beim Kompilieren durch 100 ersetzt wird.

Satty67 14. Apr 2011 10:39

AW: Text mit TResourceStream laden
 
Ein Blick via ResourceExplorer in die Exe bestätigt das...

Luckie 14. Apr 2011 10:41

AW: Text mit TResourceStream laden
 
Verfluchte Hacke. Das war es. Ich habe die Datei mit einem Ressourceneditor erzeugt und der hat mir die erste Zeile da reingeschrieben. Ich dachte, sie würde nicht weiter stören. Nehme ich sie raus, findet er sie über den Namen. :wall:

Danke, besten Dank.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:37 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