Programm-Icon
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Programm-Icon
Auch wenn das vielleicht schon 1000 mal gefragt worden ist, ich finde einfach keine passende Referenz.....
Wie kann ich meinem Programm (in Windows und in Linux) ein Icon zuordnen, das im Betriebssystem beim Datei-Browsen erscheint, das im Mainform angezeigt wird und das als Symbol für das laufende Programm dient.
Das müsste doch eigentlich OS-unabhängig enkapsuliert sein. oder ?
-Michael
Wie kann ich meinem Programm (in Windows und in Linux) ein Icon zuordnen, das im Betriebssystem beim Datei-Browsen erscheint, das im Mainform angezeigt wird und das als Symbol für das laufende Programm dient.
Das müsste doch eigentlich OS-unabhängig enkapsuliert sein. oder ?
-Michael
- af0815
- Lazarusforum e. V.
- Beiträge: 6848
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Funktioniert das tutorial von der WissensDB bei dir nicht ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Doch aber es ist ja kein Problem einmal das Resourcefile zu erstellen und dann einzubinden. Anscheinend war es noch niemandem wichtig genug um es einzubauen. Es ist ja auch nicht sonderlich schwer, kannst einfach nach den manifest und Appbundle Generatoren schaun dann siehst wie sowas gemacht wird... Ist halt n paar Stunden aufwand.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Da steht etwas über "Wie fügt man zu einer selbst erstellten Komponente ein Icon hinzu".af0815 hat geschrieben:Funktioniert das tutorial von der WissensDB bei dir nicht ?
Mir geht es aber nicht um eine Komponente, sondern ein Programm.
Mit Delphi ist das ganz einfach, da kann es mit Lazarus doch nicht so ein Problem sein....
-Michael
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Ich habe nun dies versucht:
http://wiki.lazarus.freepascal.org/Application_Icon/de" onclick="window.open(this.href);return false;
Übrigens. mein Programm hat in Windows anscheinend gar kein Icon, nur ein weißes Rechteck.... Ich muss also nicht "ändern", sondern "erzeugen" ...
und erhalte das:
Compiling resource lftp.rc
c:\lazarus\fpc\2.2.0\bin\i386-win32\windres.exe: no resources
LFTP.lpr(22,1) Error: Error while linking
LFTP.lpr(22,1) Fatal: There were 1 errors compiling module, stopping
Hat jemand noch einen Tip ?
-Michael
http://wiki.lazarus.freepascal.org/Application_Icon/de" onclick="window.open(this.href);return false;
Übrigens. mein Programm hat in Windows anscheinend gar kein Icon, nur ein weißes Rechteck.... Ich muss also nicht "ändern", sondern "erzeugen" ...
und erhalte das:
Compiling resource lftp.rc
c:\lazarus\fpc\2.2.0\bin\i386-win32\windres.exe: no resources
LFTP.lpr(22,1) Error: Error while linking
LFTP.lpr(22,1) Fatal: There were 1 errors compiling module, stopping
Hat jemand noch einen Tip ?
-Michael
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Danke für die BlumenChristian hat geschrieben:Ich würde euch beide so einschätzen das euer wissen reicht um das zu implementieren...

Nachdem Ich es geschafft habe dem blöden WinXP (das ich normakerweise vorsichtshalber nicht als Adminstrator betreibe) den Pfad zu Lazarus' "windres" beizubringen, klappt auch die oben Anleitung in der WissensDb (Ich meine nicht die für Komponenten-Icons !).
-Michael
-
- Beiträge: 205
- Registriert: So 2. Dez 2007, 20:47
- OS, Lazarus, FPC: Windows XP Lazarus immer neueste Version
- CPU-Target: xxBit
- Wohnort: Schweiz
Ikone im Windows
Mit folgender Anleitung kannst Du es schaffen. Achtung: Nicht bei jeder Version sind die Angaben im On Create nötig. Bei den neusten Shots muss man nur die Res Datei einfügen:
Lazarus Ikone wechseln:
Als erstes wird eine rc Datei erstellt. Diese Datei muss den selben Namen wie die EXE haben. Das
EXE hat in meinem Beispiel den Namen MEINPRG.EXE, demzufolge muss die RC Datei
MEINPRG.RC heissen. Diese Textdatei, welche ich mit dem Editor erstelle hat folgenden Inhalt:
MainIcon ICON "MEINEICON.ICO"
Anstelle von MEINEICON.ICO einfach den Namen der Icone nehmen.
Nun wird diese Datei in eine RES Datei kompiliert.
Kopieren Sie die MEINPRG.RC plus die MEINICON.ICO Datei in den Unterordner von Lazarus in
dem sich die Datei Windres.exe befindet. (Bei mir fand ich diese im Unterordner FPC und dort in
einem weiteren Unterordner.)
Nun geben Sie im Dos Prompt folgenden Befehl ein:
windres -i meinprg.rc -o meinprg.res
(Ich habe eine Batch Datei erstellt, die das für mich macht.)
Danach kopieren Sie die Datei MEINPRG.RES und die Icone in den Ordner vom Projekt.
Nun öffnen Sie das Form 1 und dort das OnCreate Ereignis:
Uses ergänzen Sie mit windows
Die Procedure: procedure TForm1.FormCreate(Sender: TObject);
ergänzen Sie mit:
Achtung: Im on create muss nichts mehr erfasst werden (Mit Tab eingerückt) ! Nur noch in der
Initalization!
var
hFormIcon: THandle;
hFormIcon := LoadIcon(hInstance, 'FORMICON');
SetClassLong(self.Handle, GCL_HICON, hFormIcon);
SetClassLong(self.Handle, GCL_HICONSM, hFormIcon);
end;
Und die initialization ergänzen Sie mit:
{$R meinprg.res}
Für XP Style ebenfalls hier {$R manifest.res} einfügen:
Nun sollte es laufen.
Tipp wenn der Compiler die RES Datei nicht findet oder nicht akzeptiert. Einfach Lazarus schliessen
und dann nochmals neu starten und das Projekt neu öffnen.
Lazarus Ikone wechseln:
Als erstes wird eine rc Datei erstellt. Diese Datei muss den selben Namen wie die EXE haben. Das
EXE hat in meinem Beispiel den Namen MEINPRG.EXE, demzufolge muss die RC Datei
MEINPRG.RC heissen. Diese Textdatei, welche ich mit dem Editor erstelle hat folgenden Inhalt:
MainIcon ICON "MEINEICON.ICO"
Anstelle von MEINEICON.ICO einfach den Namen der Icone nehmen.
Nun wird diese Datei in eine RES Datei kompiliert.
Kopieren Sie die MEINPRG.RC plus die MEINICON.ICO Datei in den Unterordner von Lazarus in
dem sich die Datei Windres.exe befindet. (Bei mir fand ich diese im Unterordner FPC und dort in
einem weiteren Unterordner.)
Nun geben Sie im Dos Prompt folgenden Befehl ein:
windres -i meinprg.rc -o meinprg.res
(Ich habe eine Batch Datei erstellt, die das für mich macht.)
Danach kopieren Sie die Datei MEINPRG.RES und die Icone in den Ordner vom Projekt.
Nun öffnen Sie das Form 1 und dort das OnCreate Ereignis:
Uses ergänzen Sie mit windows
Die Procedure: procedure TForm1.FormCreate(Sender: TObject);
ergänzen Sie mit:
Achtung: Im on create muss nichts mehr erfasst werden (Mit Tab eingerückt) ! Nur noch in der
Initalization!
var
hFormIcon: THandle;
hFormIcon := LoadIcon(hInstance, 'FORMICON');
SetClassLong(self.Handle, GCL_HICON, hFormIcon);
SetClassLong(self.Handle, GCL_HICONSM, hFormIcon);
end;
Und die initialization ergänzen Sie mit:
{$R meinprg.res}
Für XP Style ebenfalls hier {$R manifest.res} einfügen:
Nun sollte es laufen.
Tipp wenn der Compiler die RES Datei nicht findet oder nicht akzeptiert. Einfach Lazarus schliessen
und dann nochmals neu starten und das Projekt neu öffnen.
- af0815
- Lazarusforum e. V.
- Beiträge: 6848
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Ikone im Windows
Ich glaube da wäre der Arikel besser im WissensDB aufgehoben bzw. der dortige vorhandene Artikel auf Stand gebracht.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Ikone im Windows
Wenn ich das richtig sehe, macht der Make-Prozess von Lazarus das automatisch (sofern ein PATH zu windres und gcc un der Umgebung steht).Kuster Peter hat geschrieben:Nun geben Sie im Dos Prompt folgenden Befehl ein:
windres -i meinprg.rc -o meinprg.res
-Michael
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Re: Ikone im Windows
nur noch der Vollständigkeit wegen, da gibts schon längst was:af0815 hat geschrieben:Ich glaube da wäre der Arikel besser im WissensDB aufgehoben bzw. der dortige vorhandene Artikel auf Stand gebracht.
http://www.lazarusforum.de/kb.php?mode=article&k=3" onclick="window.open(this.href);return false;
http://www.lazarusforum.de/kb.php?mode=article&k=10" onclick="window.open(this.href);return false;
Johannes