Unterstützung für Ressourcendateien

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Ressourcen und Bilder


Ressourcendateien werden nur für Desktop-Plattformen unterstützt. Das Laden von Ressourcendateien wird auf mobilen Plattformen vom Betriebssystem nicht unterstützt. Verwenden Sie zum Laden von Dateien auf ein mobiles Gerät eine andere Methode, indem Sie die Dateien z. B. extern laden.

Desktop-Plattformen

In diesem Beispiel wird gezeigt, wie der Text aus einer TXT-Datei mithilfe einer Ressourcendatei geladen wird.

Um dieses Beispiel zu erzeugen und zu testen:

  1. Erstellen Sie eine Geräteübergreifende Anwendung
  2. Fügen dem Formular die folgenden Steuerelemente hinzu:
  1. Fügen Sie die TXT-Datei dem Ordner des Projekts hinzu.
  2. Wählen Sie Projekt > Ressourcen und Bilder..., und fügen Sie die TXT-Datei hinzu.
  3. Erzeugen Sie das Projekt, um die RC-Datei zu generieren, die die Referenz auf die TXT-Datei enthält.
  4. Öffnen Sie die Datei <Projektname>_<Ressourcen>.rc, in der der Name der Ressource, deren Typ und der Name der Datei enthalten ist.
Resource_1 RCDATA "<file_name>.txt" 
Hinweis: Im Fenster Ressourcen und Bilder... werden diese Informationen angezeigt.

C++Builder

 
void __fastcall TForm1::Button1Click(TObject *Sender) {
  TResourceStream *Stream = new TResourceStream((int)HInstance, "<Ressourcenbezeichner>", RT_RCDATA); //RT_RCDATA ist der Ressourcentyp.
  __try {
    TStringList *List = new TStringList;
    __try {
      List->LoadFromStream(Stream);
      Label1->Text = List->Text;
    }
    __finally {
      List->DisposeOf();
    }
  }
  __finally {
    Stream->DisposeOf();
  }
}

Delphi

procedure TForm1.Button1Click(Sender: TObject);
var
  List: TStringList;
  Stream: TResourceStream;
begin
  Stream := TResourceStream.Create(HInstance, '<Ressourcenbezeichner>', RT_RCDATA);
  try
    List := TStringList.Create;
    try
      List.LoadFromStream(Stream);
      Label1.Text := List.Text;
    finally
      List.Free;
    end;
  finally
    Stream.Free;
  end;
end;

Sie können dieses Beispiel auf mobilen Plattformen ausführen, aber Sie erhalten beim Versuch, die Ressourcen zu laden, die folgende Exception: class EResNotFound mit der Meldung "Ressource <Ressourcenname> nicht gefunden".

Mobile Plattformen

In diesem Beispiel wird gezeigt, wie der Text aus einer TXT-Datei ohne eine Ressourcendatei geladen wird.

Um dieses Beispiel zu erzeugen und zu testen, erstellen Sie eine mobile FireMonkey-Anwendung, und fügen dem Formular die folgenden Steuerelemente hinzu:

  1. Kopieren Sie die TXT-Datei in den Ordner des Projekts.
  2. Verschieben Sie im Bereitstellungs-Manager diese Dateien in den Ordner assets\internal (intern) oder assets (extern).
  3. Beziehen Sie die Unit System.IOUtils in Ihr Projekt ein, damit GetDocumentsPath verwendet werden kann.

In C++Builder

 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  TStringList *List=new TStringList;
  __try {
    List->LoadFromFile(System::Ioutils::TPath::GetDocumentsPath + PathDelim + "example.txt"); // #include <System.IOUtils.hpp>
    Label1->Text = List->Text;
  }
  __finally {
    List->DisposeOf();
}

In Delphi

procedure TForm6.Button1Click(Sender: TObject);
var
  List: TStringList;
begin
  List := TStringList.Create;
  try
    List.LoadFromFile(TPath.GetDocumentsPath + PathDelim + 'example.txt'); 
    Label1.Text := List.Text;
  finally
    List.Free;
  end;
end;

Siehe auch