Autor Beitrag
galagher
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2562
Erhaltene Danke: 46

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mo 09.11.09 18:16 
Hallo zusammen!

Ich weiss, wie man per .res-Datei Icons in sein Programm einbindet. Das ginge ja auch, wenn nicht der Standard-Imageeditor von Delphi diese Einschränkung von 32x32 Pixel und 16 Farben hätte.
Das Symbol erfordert einfach mehr Farben und möglicherweise auch 48x48 Pixel, da man ansonsten nichts erkennen kann.

Mit Delphi selbst kann ich ein Symbol mit mehr Farben mit "Projekt / Optionen / Anwendung / Symbol" einbinden, allerdings kann ich das Symbol in der .res-Datei mit dem Delphi-Imageeditor nicht öffnen, da der es nicht unterstützt. Gut, soll sein.

Ich möchte aber ein zweites Symbol in der Programmdatei haben, welches ich dann den zum Programm gehörenden Dateien zuweisen kann, so wie .doc-Dateien ein zu Word gehörendes Symbol haben.

Wie kann man .ico-Dateien noch einbinden?

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Mitmischer 1703
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Mo 09.11.09 18:56 
Geht denn eine ImageList?

_________________
Die Lösung ist nicht siebzehn.
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Mo 09.11.09 19:17 
Du kannst die Ico-Datei mit einem anderen Bildeditor z. B. IcoFx erstellen und dann manuell eine eine RC-Datei basteln und diese kompilieren:
ausblenden Delphi-Quelltext
1:
NameFuerDeinSymbol ICON "D:\Pfad\Zum\Icon.ico"					


cmd.exe öffnen, mit "cd" ins Verzeichnis der rc-Datei navigieren und brcc32.exe mit dem Namen der rc-Datei als Parameter ausführen. Und schon hast du eine .res-Datei.
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2562
Erhaltene Danke: 46

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mo 09.11.09 19:42 
user profile iconMitmischer 1703 hat folgendes geschrieben Zum zitierten Posting springen:
Geht denn eine ImageList?
Geht, wenn gewährleistet ist, dass das Symbol dann das 2., 3., 4. ... oder 992. im Programm ist - ich muss diese Zahl nur herausfinden können, damit ich sie in InnoSetup angeben kann.

user profile iconAndreas L. hat folgendes geschrieben Zum zitierten Posting springen:
Du kannst die Ico-Datei mit einem anderen Bildeditor z. B. IcoFx erstellen und dann manuell eine eine RC-Datei basteln und diese kompilieren:
ausblenden Delphi-Quelltext
1:
NameFuerDeinSymbol ICON "D:\Pfad\Zum\Icon.ico"					


cmd.exe öffnen, mit "cd" ins Verzeichnis der rc-Datei navigieren und brcc32.exe mit dem Namen der rc-Datei als Parameter ausführen. Und schon hast du eine .res-Datei.
Und wie genau muss die Befehlszeile aussehen, wenn die .ico-Datei WinShell2.ico heisst?

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Mitmischer 1703
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Mo 09.11.09 19:48 
Genauso.

_________________
Die Lösung ist nicht siebzehn.
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Mo 09.11.09 20:17 
Die RC-Datei muss dann so aussehen: MeinSymbol ICON "WinShell2.ico" //wenn die ico-Datei nicht im selben Verzeichnis wie die rc-Datei liegt musst du selbstverständlich den kompletten Dateipfad angeben.

Die Befehlzeile ist dann die selbe brcc32.exe DeineRCDatei.RC

Das Symbol sollte, sofern keine anderen Symbole außer den Anwendungssymbol eingebunden werden, den Index 1 haben.
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2562
Erhaltene Danke: 46

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mo 09.11.09 20:30 
Vielleicht liegt's ja an mir...

Welche .rc-Datei? Es gibt keine!
Ich habe bloss eine .ico-Datei.
Ok:
brcc32.exe BatchSymbol.rc BatchSymbol ICON "WinShell2.ico"?

Kann mir einfach jemand die gesamte , korrekte Befehlszeile posten - sorry, aber den Befehl "brcc32.exe" rufe ich so praktisch niemals auf!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Mo 09.11.09 20:31 
Du musst dir die RC-Datei natürlich selbst erstellen. Verwende dazu Notepad und kopier das hier rein: MeinSymbol ICON "WinShell2.ico"

Dann rufst du cmd.exe auf und führst du oben genannte Befehlszeile aus.

Ist das so schwer zu begreifen? :roll:
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2562
Erhaltene Danke: 46

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mo 09.11.09 21:51 
Ok, danke, das haut hin und erstellt eine .res-Datei!
Aber wo binde ich diese ein?

Dass ich sie nirgendwo extra angebe, wäre einleuchtend, denn in der .dpr steht ja {$R *.res}. Aber dann wird meine .res nicht mikompiliert.
Gebe ich meine .res in der .dpr extra an:
{$R *.res}
{$R BatchSymbol.RES}
... ist meine .res in der .exe zwar vorhanden, aber die .exe erhält das in meiner .res-Datei enthaltene Symbol anstatt das per Delphi angegebene Symbol.

Gebe ich {$R BatchSymbol.RES} in meiner Unit1.pas (=Mainform) an, passiert dasselbe.

Meine Fragen daher:
1. Wie und wo muss ich meine .res-Datei angeben?
2. Und stimmt diese InnoSetup-Script Zeile prinzipiell:
ausblenden Quelltext
1:
Root: HKCR; Subkey: "WSL-Datei\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\WinShell.exe,1"; Tasks: associate					

WinShell.exe,0 klappt -> ist das .exe-Symbol. Ich möchte aber das Symbol, das den Index 1 hat!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2562
Erhaltene Danke: 46

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Di 10.11.09 18:19 
Es ist offenbar ausschlaggebend, die Namen der .res-Dateien zu "nummerieren", also Filename1.res, Filename2.res, Filename3.res usw. Filename.res wäre also dann mit Delphi erzeugte Datei.
So werden die Symbole innerhalb des Programms korrekt "angeordnet" und man greift auf sie mit dem Index, den die Zahl angibt, zu, zB. in einem InnoSetup-Script, mit dem man bei der Installation Datendateien Symbole zuweisen will.

Keine Ahnung, ob mich mit diesen Annahmen richtig liege, aber es funktioniert!

Danke euch!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!