AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ikone für Prg und Datei

Ein Thema von Willie1 · begonnen am 2. Sep 2025 · letzter Beitrag vom 3. Sep 2025
Antwort Antwort
Willie1

Registriert seit: 28. Mai 2008
755 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

Ikone für Prg und Datei

  Alt Gestern, 13:07
Hallo Leute,
ich nutze seit 20 Jahren ein Programm von mir, das ich natürlich gelegentlich verbessere und auch nach 20 Jahren finde ich noch kleine Fehler. soweit so gut.
Als ich jetzt zum ersten Mal mit Delphi 12 kompiliert habe, fällt mir Folgendes auf. Ich habe eine Ikone für Programm und eine weitere für die Datei, die mein Prg erzeugt. Diese Ikone ist im Explorer verschwunden und durch die Standard-Ikone ersetzt worden. Auch neues Kompilieren mit Delphi 10 hilft nicht. Wie kann ich den alten Zustand wieder herstellen.

Gruß Willie.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.693 Beiträge
 
Delphi 12 Athens
 
#2

AW: Ikone für Prg und Datei

  Alt Gestern, 15:11
Früher war das Icon in der Projekt.res (*.res) gespeichert. (jetzt auch, aber es dort zu ändern ist nutzlos, da die Projekt.res aus RC/DPROJ beim Compile/Build neu generiert wird)
Jetzt in der *.dproj (abhängig von der ausgewählten Config und Plattform)
und wird z.B. beim Umschalten der Config in der projekt.rc (*.rc) entsprechend verlinkt, aus welcher die *.res generiert wird.

Ressourcen aus dem Ressourcen-Manager werden nun auch nicht mehr in dieser *.res gespeichert, sondern in der *.dres, und auch Diese wird teilweise aus der DPROJ geupdatet.


Außerdem gibt es nicht mehr nur das eine Icon.
Jedes OS verlangt heutzutage mehrere Versionen.
Und z.B. das HauptIcon auch noch als MultiRes (also das Icon in mehreren Größen innerhalb dieser .ico, bzw. .icons)
Dazu dann noch Varianten für Desktop, StartMenü usw.
https://docwiki.embarcadero.com/RADS...Programmsymbol

Und fast ganz neue Delphis besitzen nun auch einen Icon-Generator in den Projektoptionen, welcher aus einer SVG die verschiedenen ICON/PNG generieren kann.
https://blogs.embarcadero.com/multi-...con-generator/
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (Gestern um 15:18 Uhr)
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
755 Beiträge
 
Delphi 10.1 Berlin Starter
 
#3

AW: Ikone für Prg und Datei

  Alt Gestern, 17:19
Hallo Himitsu,
ich weiß, dass du sehr viel über Delphi weißt und erklärst, was sich seit Delphi 2005 geändert hat. Ich hatte das Projekt ursprünglich mit D2005 erzeug. Ich habe damals ein Skript für den RC-Compiler geschrieben.

Ich habe jetzt unter Projekt/Ressourcen und Bilder meine zweite Ikone für die Datei eingebunden. Wie geht es jetzt weiter? Ich wäre ja schon zufrieden, wenn Windows die Programm-Ikone auch für die Datei benutzen würde. Das funktionierte erst und jetzt auch nicht mehr. Nur noch die Standard-Ikone für nicht registrierte Dateien. Ich habe davon gehört, dass es Ikonen in verschiedenen Größen gibt aber das ist für mich nicht relevant. Ich habe mit einem Ikonengrabber nach gesehen, die zweite Ikone ist nicht mehr vorhanden.
Bei Delphi Berlin hatte es keine Probleme gegeben.

Willie.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.693 Beiträge
 
Delphi 12 Athens
 
#4

AW: Ikone für Prg und Datei

  Alt Heute, 05:02
Projekt -> Ressourcen und Bilder fügt man zusätzliche Ressourcen ein, welche einen Namen bekommen,
aber dort kannst du nicht die "richtige" ID angeben, damit diese Ressource als App-Icon erkannt wird.
Fazit: dort garnicht (eigentlich)

In der RC gibt es eine Konstante MAINICON (ich glaube die hat den Wert 0)
ABER, da ich auch schon komische Dinge gesehn hab, z.B. hier was aus ddem FMX
Delphi-Quellcode:
Result := LoadIcon(MainInstance, 'MAINICON');
Result := LoadIcon(0, IDI_APPLICATION);
FMAppClass.hIcon := LoadIcon(MainInstance, PChar('MAINICON'));

// wobei IDI_APPLICATION = MakeIntResource(32512) aka PChar(32512)
Also versuch einfach mal MAINICON als Name im Ressourcen und Bilder anzugeben.

https://devblogs.microsoft.com/oldne...3-00/?p=111106

(wie und wo die zusätzlichen bzw. neuen Icons/Bilder aus den Projektoptionen eingebunden werden, hab ich ehrlich gesagt noch nie nachgesehn)



Am Einfachsten ist es wohl, wenn du im Projekt die Icons deaktivierst/entfernst
und dann eine eigene .RES, bzw. .RC in die .DPR einbindest.

Nur innerhalb der .DPR und .DPK kann man anstatt {$R xxxx.res} auch {$R xxxx.res xxxx.rc} verwenden.
(in PAS zwar auch, aber dort wird der RC-Parameter bösartig und ohne was zu sagen ignoriert)

Innerhalb der Projektdatei kümmert sich dann Delphi darum (bzw. die DPROJ/MSBuild), dass die RC zur RES kompiliert wird.


Ich vergesse immer, wie rum es ist. (müsste man ausprobieren)
Falls DOCH Delphi wieder ein eigenes Icon einfügt, dann wäre ja nun dessen ID/Name doppelt,
es kommt also eine Compilerwarnung (oder vielleicht auch erst später eine Warnung vom Linker), dass diese Ressource doppelt ist.

Welche Ressource dann verwendet wird,
* also die Erste und alle Nachfolgenden ignoriert
* oder die Letzte, also jeweils das Vorherige überschrieben
darauf kommt es nun an, ob du deine Ressource als Erstes oder Letztes, vor oder unter das {$R *.res} , in die DPR einfügen solltest),
damit im Fehlerfall dennoch dein ICON verwendet wird.

Alternativ den Icon-Eintrag im Projekt (*.DPROJ) aktualisieren.
Kann sein, dass jemand dafür schon ein Tool (Konsolenanwendung) dafür geschrieben hat,
oder man geht über die OpenToolsAPI da dran.
(notfalls könnte man z.B. auch via XML-Komponente dran rumfummeln)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (Heute um 05:04 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz