![]() |
Wie arbeite ich mit Resource Dateien?
Hi DP-ler,
es ist mal wieder soweit, dass ich ein neues FAQ erstellt habe. Dieses Mal geht es darum, neue Resourcen einer Delphi Anwendung hinzuzufügen. Eigentlich recht einfach, meistens jedoch nicht dokumentiert und dadurch etwas schwerer. Also, am besten mal eine neue Anwedung in Delphi erstellen und probehalber mitmachen. Folgende Komponenten auf im Designer auf das Form packen (Standardnamen beibehalten!) und das Form unter dem Namen uSampleForm speichern!
Anschließend wählt Ihr im Menü unter Datei|Neu den Typ TEXT DATEI aus und speichert die Datei unter dem Namen SampleRes.rc. RC Dateien sind unkompilierte Resourcedateien (RES). Fügt jetzt die RC Datei dem Projekt hinzu ([SHIFT]+[F11]). Dazu müsst ihr im "Hinzufügen Dialog" die Dateitypenbeschränkung aufheben (Alle Dateien|*.*). Jetzt fehlt uns nur noch der Code für die RC Datei
Code:
Jede Zeile ist dabei in drei Abschnitte aufgeteilt
SourceCode RCDATA "uSampleForm.pas"
CALogo BITMAP "CALogo.bmp"
BITMAP nutze ich hier, um ein Bild als Resource einzubinden. Hinweis: Delphi überprüft beim Kompilieren nicht, ob sich die Resourcen geändert haben. Wenn die RC Datei nicht geändert wurde, wird diese nur bei "Projekt neu erzeugen" kompiliert. Das einbinden der Resourcen ist recht einfach. Für die Textdatei habe ich eine einfache Routine erstellt, welcher der Name (case-insensitiv) der Resource übergeben wird. Die Funktion liefert den Inhalt zurück.
Delphi-Quellcode:
Bei erstellen des Forms habe ich jetzt lediglich zwei Zeilen Code, um den Text in das Memo und das BMP ins Image zu laden.
function GetStringFromResource(Name: String): String;
begin with TResourceStream.Create(HInstance, Name, RT_RCDATA) do try SetLength(Result, Size); Read(Result[1], Size); finally Free; end; end;
Delphi-Quellcode:
Das wars.
Memo1.Text := GetStringFromResource('SourceCode');
Image1.Picture.Bitmap.LoadFromResourceName(HInstance, 'calogo'); ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:35 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-2025 by Thomas Breitkreuz