Programm-Icon

Für Fragen rund um die Ide und zum Debugger
Antworten
mschnell
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

Beitrag von mschnell »

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

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6849
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:

Beitrag von af0815 »

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).

Christian
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:

Beitrag von Christian »

Unter unix ist das nicht möglich, dort gibts keine Icons für programme die kann man nur den verknüpfungen zuordnen. Bei MacOS gibts dafür die App Bundles.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

mschnell
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

Beitrag von mschnell »

af0815 hat geschrieben:tutorial von der WissensDB
Ah danke, gefunden. Ich versuch's 'mal

Ich verstehe aber nicht, warum etwas so "normales" nicht automatisiert ist.... Wird das von anderen nicht verwendet ?

Gruß,

-Michael

Christian
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:

Beitrag von Christian »

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/

mschnell
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

Beitrag von mschnell »

af0815 hat geschrieben:Funktioniert das tutorial von der WissensDB bei dir nicht ?
Da steht etwas über "Wie fügt man zu einer selbst erstellten Komponente ein Icon hinzu".

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

mschnell
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

Beitrag von mschnell »

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

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

mschnell hat geschrieben:Ich verstehe aber nicht, warum etwas so "normales" nicht automatisiert ist.... Wird das von anderen nicht verwendet ?
Kannst ja einen Feature-Report machen?
Würde so eine Funktion auch praktisch finden.

Christian
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:

Beitrag von Christian »

Ich würde euch beide so einschätzen das euer wissen reicht um das zu implementieren...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

mschnell
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

Beitrag von mschnell »

Christian hat geschrieben:Ich würde euch beide so einschätzen das euer wissen reicht um das zu implementieren...
Danke für die Blumen :)

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

Christian
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:

Beitrag von Christian »

das ich normakerweise vorsichtshalber nicht als Adminstrator betreibe
Ich zieh normalerweise vorsichtshalber auch die Handschuhe aus wenn ich mit Säure arbeite ;)
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Kuster Peter
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

Beitrag von Kuster Peter »

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.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6849
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

Beitrag von af0815 »

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).

mschnell
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

Beitrag von mschnell »

Kuster Peter hat geschrieben:Nun geben Sie im Dos Prompt folgenden Befehl ein:

windres -i meinprg.rc -o meinprg.res
Wenn ich das richtig sehe, macht der Make-Prozess von Lazarus das automatisch (sofern ein PATH zu windres und gcc un der Umgebung steht).

-Michael

monta
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

Beitrag von monta »

af0815 hat geschrieben:Ich glaube da wäre der Arikel besser im WissensDB aufgehoben bzw. der dortige vorhandene Artikel auf Stand gebracht.
nur noch der Vollständigkeit wegen, da gibts schon längst was:
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

Antworten