Autor Beitrag
Pixelex
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Do 07.02.08 09:10 
Hallo,

gestern wollte ich Grafiken per Resource-Datei in meine .exe-Datei einbinden in Turbo Delphi, das hat aber alles nicht ganz hingehauen.

1. Ich habe die grafiken.rc-Datei mit validem Inhalt mit brcc32.exe kompiliert. grafiken.RES-Datei entstand.
2. Dann startete ich Turbo Delphi und er meinte beim Öffnen meines Projektes: "meinprojektname.RES ist nicht vorhanden. Wird erstellt." Das fand ich schonmal komisch, weil ich dachte ich brauche nur die grafiken.RES. Warum erstellt der eine meinprojektname.RES-Datei?
3. Habe dann die Datei so eingebunden: {$R grafiken.RES}
4. Weil es dann glaube ich nicht direkt funktionierte habe ich mal probiert im Projekt-Fenster Rechtsklick auf meinprojektname.exe und dann Hinzufügen die grafiken.RC-Datei. Nichts passierte.
5. Nach dem Neustarten von TD und öffnen meines Projektes hatte ich nun die grafiken.RC-Datei auch im Projektfenster liegen und nun kommt immer dieses "Duplicate Resource"-Errormeldung wenn ich das Projekt starten will.

Das komische ist die .RC-Datei lässt sich nicht mehr aus dem Projekt-Fenster entfernen. Ich habe alles probiert. Habe die Dateien RC und RES mittlerweile sogar aus dem Projektverzeichnis gelöscht, aber die grafiken.RC-Datei ist weiterhin im Projektfenster, die "Duplicate"-Meldung kommt und die RC Datei lässt sich einfach nicht entfernen. :/

Könnt ihr mir helfen?

Moderiert von user profile iconNarses: Titel geändert.
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Do 07.02.08 09:38 
Titel: Re: .rc-Datei lässt sich nicht aus Projekt entfernen?!?
user profile iconPixelex hat folgendes geschrieben:
2. Dann startete ich Turbo Delphi und er meinte beim Öffnen meines Projektes: "meinprojektname.RES ist nicht vorhanden. Wird erstellt." Das fand ich schonmal komisch, weil ich dachte ich brauche nur die grafiken.RES. Warum erstellt der eine meinprojektname.RES-Datei?


Dort finden sich die Projektressorcen, wie z.B. das Programmicon usw.

Zitat:
5. Nach dem Neustarten von TD und öffnen meines Projektes hatte ich nun die grafiken.RC-Datei auch im Projektfenster liegen und nun kommt immer dieses "Duplicate Resource"-Errormeldung wenn ich das Projekt starten will.


Untersuche doch mal die Projektdatei .dpr mit einem Texteditor. Eventuell ist die RC dort eibgebunden.

Moderiert von user profile iconjasocul: Delphi- durch Quote-Tags ersetzt

_________________
Popov
Pixelex Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Do 07.02.08 09:54 
Oh man ja sorry, hatte {$R grafiken.res} in .dpr und in Form implementation drin. :/ Jetzt gehts. Danke ^_^.

Nur noch ein Problem. Ich nutze ja PNGDelphi um PNG-Bilder benutzen zu können, die lassen sich aber nicht mit

001 BITMAP "grafiken/pn_logo.png"
oder
001 PNG "grafiken/pn_logo.png"

über

SplashGrafik.Picture.Bitmap.LoadFromResourceID(HInstance, 001);
oder
SplashGrafik.Picture.PNG.LoadFromResourceID(HInstance, 001);

laden. Wie mache ich das mit den PNG's damit die in die .exe-Datei integriert werden? ^_^
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Do 07.02.08 09:56 
Neue Frage, neuer Thread.

_________________
Popov
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Do 07.02.08 10:01 
Probiers mal mit 001 RCDATA "grafiken/pn_logo.png"
und Crosspost solltest Du mit angeben
www.delphipraxis.net...ojekt+entfernen.html

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
Pixelex Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Do 07.02.08 10:18 
Ich probiere es mal mit RCDATA. Ich melde mich dann...
Pixelex Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Do 07.02.08 10:45 
Hi,

hm das funktioniert noch nicht.

Meine RC-Datei ist wie folgt: G001 RCDATA "grafiken/pn_logo.png"

Und mein Quelltext:

ausblenden Delphi-Quelltext
1:
2:
  Resource1 := TResourceStream.Create(HInstance, 'G001', PChar('RC_DATA'));
  SplashGrafik.Picture.Graphic.LoadFromStream(Resource1);



Kompilierung der RC-Datei hat auch funktioniert und RES wurde erstellt. Er meint aber immer Ressource G001 kann nicht gefunden werden. :/
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Do 07.02.08 11:02 
Die Resourcen haben einen Typen. Darauf musst du achten! Das ist wichtig. Denn eine Resource "RCDATA \ Blah" ist nicht gleichzusetzen mit "Bitmap \ Blah" oder "BMP \ Blah". Das Bitmap ist im übrigen auch noch ein spezieller Resourcentyp. Wenn du diesen Laden willst musst du RT_BITMAP als ResoureType übergeben. Dadurch, dass es ein Spezieller Typ ist wird eine nummerische Konstante anstelle des Textes erwartet. RCDATA ist das Gleiche. Also RT_RCDATA musst du dafür übergeben. Wenn du 'PNG' als Type angegeben hast musst du 'PNG' übergeben, da es kein spezieller Typ ist. Und ja das Resourcesystem von Windows ist ziemlich krank.

Außerdem dürftest du noch ein anderes Problem haben. Das Objekt Image.Picture.Graphic passt sich, meines Wissens nach, nicht automatisch deiner Resource an. Sprich. Das Graphic dürte ein TBitmap sein. Du müsstest aber ein TPNGObject erstellen. Mit diesem dann die Resource laden und anschließend dieses mit Picture.Assign() zu deinem Picture zuweisen. Das LoadFromResourceName benutzt für den Resourcetypen bereits RT_RCDATA. Also brauchst du auch keinen Unweg über einen Stream machen.

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
Pixelex Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Do 07.02.08 11:26 
So klappt es!!

ausblenden Delphi-Quelltext
1:
2:
3:
4:
p := tpngobject.Create;
p.LoadFromResourceName(HInstance, 'G001');
SplashGrafik.Picture.Assign(p);
freeandnil(p);


Nur nun sieht man natürlich immernoch das Form-Fenster im Hintergrund. Wie macht ich das nun transparent so das nur das transparente Image angezeigt wird?
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Do 07.02.08 12:26 
user profile iconPixelex hat folgendes geschrieben:
Nur nun sieht man natürlich immernoch das Form-Fenster im Hintergrund. Wie macht ich das nun transparent so das nur das transparente Image angezeigt wird?

Dazu solltest du wohl besser in deinem ursprünglichen Thema schauen / Nachfragen. ;)

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
Pixelex Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Do 07.02.08 13:23