Delphi-Forum.de Delphi-Library.de
C-Sharp-Forum.de C-Sharp-Library.de
Registrieren Login Suche Hilfe Sitemap
Tutorial zu Ressourcen
spacer
Autor Nachricht
Swordooo
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star

Beiträge: 119
Dabei seit: 01.07.2008
Wohnort: Hemslingen

W2K, Windows XP Professional
Delphi 2005 Personal, Delphi 7 Personal
BeitragVerfasst: Mi 20.08.08 13:16  Antworten mit Zitat Beitrag melden
Da mich einiger meiner Freunde, die auch Programmieren, immer wieder Fragen, wie man Res-Dateien (Ressourcen) erstellt, habe ich mir mal die Mühe gemacht und ein kleines Tutorial dazu geschrieben.

Schritt 1)
Der Übersicht zuliebe erstellst du dir einen Ordner, in dem alle deine *.rc und *.res Dateien "gelagert" werden.

Schritt 2)
Wenn du den Ordner erstellt hast, klickst du auf "Extras" -> "Ordneroptionen..." -> "Ansicht". Nun suchst du nach dem Eintrag "Erweiterungen bei bekannten Dateitypen ausblenden". Wenn erforderlich, entfernst du davor den Haken. Nun werden alle Datei-Endungen angezeigt.

Schritt 3)
Du klickst in den erstellten Ordner auf eine freie Fläche und dann auf "Neu" und dann auf "Textdukoment". Benenne die Datei so: DEINNAME.rc (DEINNAME ist variabel).

Schritt 4)
In dir *.rc Datei schreibst du nun folgendes: (Bsp: Du willst ein Bild (*.bmp) in die Ressource laden)

ausblenden Quelltext markieren
1:
2:
bild1 BITMAP "C:\Delphi Projekte\SDI SSYC\Data\Skin\button_beenden.bmp"
bild2 BITMAP "C:\Delphi Projekte\SDI SSYC\Data\Skin\button_beenden_move.bmp"


...usw.

Die Bedeutung ist folgende:

Name Dateityp "Pfad" (eigendlich ganz einfach)

Schritt 5)
Speicher es ab und klicke dann auf "Start" -> "Ausführen" unde gebe "cmd" (ohne "") ein. Drücke Enter!
Es erscheint die Eingabeaufforderung (CMD).

Schritt6)
Nun "wandelst du deine *.rc Datei in eine *.res Datei um, die du dann in dein Projekt einbinden kannst.
Dazu gebe folgendes ein:

brc32.exe "Pfad, in dem deine *.rc Datei liegt" (wenn es mit brc32.exe nicht funktioniert, dann nehme bitte brcc32.exe)

Drücke darauf Enter.

Nun solte in dem Verzeichnis, wo du deine *.rc liegt auch eine *res liegen.

Schritt 7)
Binde nun deine *.res in ein Projekt ein, in dem du folgendes in den Projekt schreibst:
Schreibe unter diese Zeile {$R *.dfm} diese Zeile {$R NameDerResDatei.res}. Also so:
ausblenden Delphi-Quelltext markieren
1:
2:
{$R *.dfm}
{$R NameDerResDatei.res}


Nun ist deine Datei fertig in des Projekt eingebunden.

Schritt 8)
Um jetzt etwas aus deiner Ressource zu laden, mache die hier (Bsp.):
ausblenden Delphi-Quelltext markieren
1:
2:
BitBtn1.Glyph.LoadFromResourceName(hinstance, 'bild1');
BitBtn2.Glyph.LoadFromResourceName(hinstance, 'bild2');

...usw...


So das war mein Tutorial und ich hoffe es gefällt und hilft euch weiter.

MfG Swordooo


Moderiert von Narses: Topic aus Dateizugriff verschoben am Mi 20.08.2008 um 14:14
Private Nachricht sendenPosting in privater Nachricht zitieren
Swordooo
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star

(Threadstarter)

Beiträge: 119
Dabei seit: 01.07.2008
Wohnort: Hemslingen

W2K, Windows XP Professional
Delphi 2005 Personal, Delphi 7 Personal
BeitragVerfasst: Mi 20.08.08 13:21  Antworten mit Zitat Beitrag melden
Aber eine Frage habe ich selber noch:
Welche Dateitypen gibt es in Ressourcen alle.
Ich kenn nur BITMAP und WAVE. Könnte jemand mal alle aufschrieben, wär echt nett.
Und kann man eine *.Res in einem laufenden Programm irgendwie erstellen, wie z.B. mit *.txt-Dateien (SaveToFile(xxx);)??

MfG

---Moderiert von Narses: Beiträge zusammengefasst---

Also ich meine auch das, was man in die RC schreibt, wie zB. bla BITMAP "xxx".
Hier ist BITMAP der DateiTyp. Welche gibt es alle?

MfG Swordooo
Private Nachricht sendenPosting in privater Nachricht zitieren
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur

Beiträge: 5245
Erhaltene Danke: 1
Dabei seit: 24.03.2004
Wohnort: Weingarten

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Do 21.08.08 11:13  Antworten mit Zitat Beitrag melden
RC_DATA ist ein Typ für alle anderen Dinge, außer CURSOR, ICON, WAVE, BITMAP, etc.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star

Beiträge: 3145
Erhaltene Danke: 10
Dabei seit: 28.12.2005
Wohnort: Österreich, Wien

Windows Vista
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Do 21.08.08 11:16  Antworten mit Zitat Beitrag melden
GTA-Place hat folgendes geschrieben:
RC_DATA ist ein Typ für alle anderen Dinge, außer CURSOR, ICON, WAVE, BITMAP, etc.


kann man auch sagen was dieses etc. genau ist? Gibts vielleicht nen link wo alle typen aufgelistet stehen?

lg elundril

_________________
"Und warum studierst du Informatik?" - "Weil ich gerne Computerspiele spiele, programmieren hass ich eigentlich." *wallbash*
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
Swordooo
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star

(Threadstarter)

Beiträge: 119
Dabei seit: 01.07.2008
Wohnort: Hemslingen

W2K, Windows XP Professional
Delphi 2005 Personal, Delphi 7 Personal
BeitragVerfasst: Fr 22.08.08 20:14  Antworten mit Zitat Beitrag melden
Zitat:
Gibts vielleicht nen link wo alle typen aufgelistet stehen?
:D :lol:
Das war ja auch meine Frage xD!

Weiß das wer?
Private Nachricht sendenPosting in privater Nachricht zitieren
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Moderator

Beiträge: 4558
Dabei seit: 30.06.2002
Wohnort: Amberg

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Mo 25.08.08 22:02  Antworten mit Zitat Beitrag melden

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
Max312
Hält's aus hier

Beiträge: 5
Dabei seit: 19.01.2010



BeitragVerfasst: So 14.02.10 17:00  Antworten mit Zitat Beitrag melden
Hallo,

Ich weiß der Thread is schon nen paar Tage alt, aber ich dachte das is der beste Ort das zu schreiben:
Nämlich versuche ich Bilder in meine .Exe einzubinden. Ich bin auch schon (dank des tollen tutorials) soweit gekommen, dass ich eine .res-Datei mit allen meinen Bildern erstellen kann und diese Bilder auch in meinem Programm aufrufen kann.
Allerdings würde ich gerne noch einen Schritt weiter gehen. Nämlich würde ich die Bilder gerne mit einer Variable aufrufen.
Zum Verständnis...
vorher habe ich das so gemacht:
ausblenden Delphi-Quelltext markieren
1:
Karte1.Picture.loadfromfile(fileref);

"Karte1" ist meine Bildobjekt, habe ein kartenspiel, bei dem sich das angezeigte Bild halt immer ändert

"fileref" ist die variable(string), die den Namen der Bilddatei beinhaltet und wird durch eine Funktion je nach Spielsituation entsprechend verändert.

Das klappte bisher auch wunderbar, nur dass ich immer 70 Bilddateien mit der .exe mitgeben muss, was nervig ist. Weswegen ich mich für eine Einbindung durch resourcen entschieden habe.

Versteht ihr, was ich vorhabe? Könnt ihr mir helfen?

mfg

Max

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Private Nachricht sendenPosting in privater Nachricht zitieren
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
EE-Maler

Beiträge: 1343
Erhaltene Danke: 2
Dabei seit: 23.02.2006
Wohnort: Mitte Deutschlands / A**** der Welt

Windoof 2000, XP
Delphi 6 Enterprise / Delphi 2005 Prof
BeitragVerfasst: So 14.02.10 17:16  Antworten mit Zitat Beitrag melden
Ich hab zwar keine Ahnung davon (ich verwende Ordner statt res Dateien :D) aber da steht doch

ausblenden Delphi-Quelltext markieren
1:
BitBtn1.Glyph.LoadFromResourceName(hinstance, 'bild1');

Jetzt brauchst du nur
ausblenden Delphi-Quelltext markieren
1:
BitBtn1.Glyph.LoadFromResourceName(hinstance, fileref);

schreiben, wobei natürlich jetzt fileref keinen Dateinamen mehr beinhaltet, sondern den Namen, der in du in der Res Datei angegeben hast
ausblenden Quelltext markieren
1:
bild1 BITMAP "C:\Delphi Projekte\SDI SSYC\Data\Skin\button_beenden.bmp"

_________________
a broken heart is like a broken window - it'll never heal
F steht für Feuer das wütet und lodert U steht für unfairer Kampf N steht für nukleares Waffenarsenal (Plankton)
Private Nachricht sendenPosting in privater Nachricht zitieren
Max312
Hält's aus hier

Beiträge: 5
Dabei seit: 19.01.2010



BeitragVerfasst: So 14.02.10 17:51  Antworten mit Zitat Beitrag melden
jo, so hatte ich es auch versucht.
Hatte allerdings nich geklappt.
Jetz habe ich es glaube ich gelöst:
Man muss dann diese Variable(fileref) als "Pansichar" definieren. Ebenso natürlich die Funktion, die fileref ändert.
Dann scheint geht es.
Private Nachricht sendenPosting in privater Nachricht zitieren
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star
Moderator

Beiträge: 7323
Erhaltene Danke: 7
Dabei seit: 25.07.2004
Wohnort: Gelsenkirchen

W2k, WXPpro
D6pe, D7pro
BeitragVerfasst: Mo 15.02.10 00:27  Antworten mit Zitat Beitrag melden
Moin!

user profile iconMax312 hat folgendes geschrieben Zum zitierten Posting springen:
"Karte1" ist meine Bildobjekt, habe ein kartenspiel, bei dem sich das angezeigte Bild halt immer ändert
[...]
Könnt ihr mir helfen?
Der Ansatz mit einer Resource ist schon nicht schlecht, aber hier gibt es vermutlich auch die - wesentlich einfachere - Möglichkeit, eine TImageList zu verwenden (wenn die Bilder alle gleich groß sind, was bei einem Kartenspiel vermutlich der Fall ist). :idea:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Beiträge vom vorherigen Thema anzeigen:   
home home