![]() |
Anwendung mit mehreren Icons ?
Wie kann ich in eine exe-Datei mehrere icons einbinden .. damit ich dann eines dieser für die Anwendung und ein anderes für durch die Anwendung erzeugte Projektdateien verwenden kann??
Danke !! |
Die weiteren Icons separat speichern und dann eine RC Datei erstellen und diese in das Projekt einbinden :)
![]() |
Ah, der zweite Parameter in der RC Datei muss ICON sein
Code:
ProjectIcon ICON "icons/project.ico"
ProjectImage ICON "icons/image.ico" ... |
ich frag mal ganz unschuldig .. was n für ne rc Datei ?? also ich weiß das da ne *.res Datei ist .. die ist aber nicht in nem ASCII Code ..
|
Ich gehe jede Wette ein, du hast nicht auf den Link von sakura geklickt.
|
gebs zu .. habn zuerst überscrollt .. habs aber mittlerweile ausprobiert .. hab jetzt zwar die Icons in dem code der anwendung .. denk ich .. kann die icons aber nicht zum Beispiel aus windows heraus 'ansprechen' .. also das icon für die Anwendung ändern oder mit nem install tool wie InnoSetup und Scriptmaker ..
Oder sollte das funktionieren und ich hab mal wieder was falsch gemacht .. |
Wußte ich es doch. :mrgreen:
Wie aus Windows heraus? Du meinst, wenn du eine Link erstellt hast und dann anderes Symbol wählst oder was? |
ja ... schon .. naja eigentliches Ziel war es .. dass ich mit Scriptmaker für InnoSetup eine FileAssociation machen wollte und dort für die Projektdatei .. dann n extra icon wählen .. welches dann in der Anwendungsdatei sein muss/sollte..
also letztendlich müsste man das Icon dann ja auch in der Verknüpfung wechseln können .. |
ich habe zwar noch nie mit InnoSetup gearbeitet, aber die Methode müsste so oder so ähnlich sein...
Wenn Du einem Dateityp mit einem verlinkst, gibst Du normalerweise den Pfad und Namen der Exe an, welche das Icon liefert. Um ein anderes Icon aus der Exe zu nehmen, musst Du nach Namen und Pfad zusätzlich ein Komma und die Nummer des Icons angeben (0-basiert). Bsp wie es in der Registry aussehen würde, wenn das 4. Icon mit Dateien des Types .den verknüpft werden würden: HKCR\.den --> DEN-File HKCR\DEN-File\DefaultIcon --> C:\Temp\Meine.exe,3 |
genau so funktioniert das aufrufen/einstellen .. aber wie krieg ich nun die icons in die exe rein, so das ich dann dementsprechend darauf zugreifen kann .. denn mit dem Beispiel aus der FAQ scheint das nicht zu funktionieren ..
|
Hast Du Dir das FAQ zum erstellen und einbinden von Resourcen durchgelesen? Da steht alles drin. Zusammen mit obigen Beispiel müsste eigentlich alles klar sein. Delphi bindet die Icons dann automatisch ein - ich habe es getestet :)
:cat: |
süßes kätzchen .. wo find ich n die FAQ mit den erstellen und einbinden von Resourcen .. hier hab ich nich wirklich was gefunden ..
|
Siehe zweites Posting(von sakura), da ist ein Link drin.
|
Mein erster Beitrag hat den Link direkt zum FAQ... :roll:
|
Also fang ich mal an..:
Sonst ganz gut , ich habs ned weiter getestet :P gut finde ich dass du ein Backup eingebaut hast. Endlich denkt auch mal einer an die Leute die mehr als einmal im JAhr formatieren :wink: [edit by sakura] Hi Roman, ich habe die bullet liste eingefügt :cat: ausserdem scheint der beitrag in der falschen sparte gelandet zu sein :shock: [/edit] |
Ich habe mir auch gerade übeerlegt, wo hier der Zusammenhang sein soll :what:.
|
kann es sein dass das mit den rc dateien erst ab ner bestimmten DelphiVersion verfügbar ist (Arbeite noch mit Delphi3) ?? weil ich hab wie aus der FAQ probiert das ganze zu machen ..
naja und das einbinden scheint nicht zu funktionieren .. dann hab ich das beispiel runtergeladen .. naja beim laden in Delphi sagt er dann: 'Fehler beim Eryeugen von Formular: Ungültiges Stream-Format |
Das ungültioge Streamformat kommt daher, das ab den späteren Delphi Version (4 od 5) Formulare normalerweise im Textformat gespeichert werden. Ich werde im Laufe des Tages ein Update hochladen. Schau mal wieder vorbei, wenn ich es oben habe, schreibe ich einen kleinen Vermerk unter an des Ende des Beitrages, um darauf hinzuweisen. (Dann geht es auch mit dem Laden... :D)
|
Reicht es nicht eigetlich aus die dfm-Datei in eine txt-Datei umzubenennen un mit convert.exe aus dem Delphi\bin-Verzeichnis zu konvertieren :?:
|
wie ruf ich n die convert.exe auf .. so dass dann halt auch die *.dfm dekompiliert wird ??
|
Das kann ich Dir leider nicht beantworten. Aber, ich hatte völlig vergessen, dass ich die Datei im Streamformat nochmal hochladen wollte. Ist geschehen. Einfach noch einmal runterladen und dann testen. Sollte funktionieren. Sorry.
:cat: |
also ich habs nochmal runtergeladen .. und ich konnt das ganze auch ausführen allerdings .. hab ich jetzt immernoch keine Ahnung wie ich jetzt n extra icon in die exe reinkriege .. weil wenn in versuche "die rc Datei" einzubinden in das Projekt .. natürlich angepasst .. aber es funktioiert einfach nicht .. weil wenn ich dann innerhalb ner procedure auf da icon zugreifenwill gibts ne fehlermeldung .. aller is nich weil nich da ..
Ich glaub ich verzweifle gerad son bisschen .. :cry: |
Es wäre ein guter Vorteil, wenn Du mal die Fehlermeldung hier reinschreiben könntest, dann ist es auch einfacher Dir zu helfen. Ausserdem am besten auch gleich die RC Datei und wie Du auf das Icon zugreifen möchtest.
|
Habs jetzt nochmal mit deinem Beispiel probiert .. weil da funktioniert es ja auch nicht .. und da geht die Fehleranalyse vielleicht einfacher .. achso eingebunden hab ich die rc-Datei über "dem Projekt hinzufügen"..
also die Funktion hab zum Auslesen hab ich aus deiner FAQ übernommen: (function GetStringFromResource(Name: String): String; die rc Datei: (das Bild hab ich in den Ordner kopiert und die unit gibts auch ..) SourceCode RCDATA "TaskSheet_u.pas" CALogo BITMAP "CALogo.bmp" das abfragen der Dinger über ne prozedure: begin Memo1.Text := GetStringFromResource('SourceCode'); Image1.Picture.Bitmap.LoadFromResourceName(HInstan ce, 'CALogo'); end; die FehlerMeldung: Im Projekt LittleMathHelper.exe ist eine Exception der Klasse EResNotFound aufgetreten. Meldung: 'Ressource SourceCode nicht gefunden'. Prozess wurde angehalten. Fortfahren mit Einzelschritt oder Start. [/code] |
Schau mal, ob in Deiner Projektdatei (DPR) die Zeile
Code:
, enstprechend Deiner Dateinamen, vorhanden ist. Ansonsten fällt mir auch nichts weiter ein. Sorry.
{$R 'SampleRes.res' 'SampleRes.rc'}
:cat: |
nee ist nich drin .. nur die Zeile:
{$R *.RES} wo müsst ich denn deine Zeile einfügen .. dadrunter oder ist das egal ?? |
Meine Projektdatei schaut wie folgt aus
Code:
:cat:
program ResourceSamples;
{$R 'SampleRes.res' 'SampleRes.rc'} uses Forms, uSampleForm in 'uSampleForm.pas' {Form1}; {$R *.RES} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. |
hab die Zeile einfach mal eingefügt .. dann kommt aber beim kompilieren die Fehlermeldung:
Fehler: (0): Datei nicht gefunden: 'SampleRes.res' Was jetzt ?? |
Jetzt muss ich wohl wirklich aufgeben. Scheint eine neuere Delphi Funktion zu sein. Letzter Tipp, der mir noch einfällt, wäre mit dem Image Editor (Menü Tools/engl.) eine extra RES Datei von Hand zu erstellen, die Icons dort einzufügen und diese Datei dann in das Projekt einzubinden.
Nachteil: Du bist auf eine feste 256 Farbpalette für die Icons begrenzt. Ansonsten, wenn Du ein MS Entwicklungstool hast, suche mal den Resource Compiler, wqo auch immer der ist, der kann die RC Dateien auch kompilieren und erstellt die entsprechenden RES Dateien, damit habe ich allerdings nie gearbeitet. :cat: |
mit der Beschränkung auf 256 Farben is zwar scheiße .. aber es funktioniert auf alle Fälle erstmal .. ich sollt mir dann vielleicht doch mal ne neuere Delphiversion besorgen ..
Aber ganz doll viel DANKE sakura!!! :D |
Zitat:
|
und wie benutz ich den ?? also wie übergeb ich dem die nötigen Paramter ?? .. Also ich denk mal über ne einfache Verknüpfung und dann halt Paramter ranhängen .. und wie genau sollt das dann aussehn?? hast du n beispiel jbg ??
|
Als Beispiel für den Borland-Ressourcencompiler:
Code:
erzeugt als Ergebnis "MeinCode.res"
brcc32 MeinSkript.rc
Code:
erzeugt als Ergebnis "MeineRessource.res"
brcc32 MeinSkript.rc -foMeineRessource.res
Wobei interessant ist, dass man auch Icons mit 256 und mehr Farben in die Anwendung bekommt. Zumindest geht das bei mir, wenn ich die RC-Datei beispielsweise per Hand schreibe und das arg bunte Icon angebe und dann mit dem BRCC32 kompiliere. (Den ImageEditor von Delphi darf man da getrost vergessen!) |
Zitat:
|
Also, im Delphi-Forum hatte webmaker mal ein TNA-Programm (oder TNT? :wink:) geschrieben, das Zugriff auf einige Win-Optionen bot. Er hat dabei XP-Icons usw. benutzt - allerdings nur vom Screen kopiert und als BMP gespeichert. Oder wie auch immer.
Ich wollte ihm demonstrieren, wie man den ganzen Quatsch ohne die VCL schreibt und habe mir als Symbol direkt aus der "shell32.dll" von WinXP diesen Ausschaltknopf geholt. Und das war ein Icon von ca. 20-30k Größe (glaube ich; ich müsste mal nachschauen)! Das lag daran, dass nicht nur Auflösungen von 16x16 bis 48x48 sondern auch Farbversionen von 16Farben bis xBit drin steckten. Dieses Icon habe ich in eine RC-Datei gesetzt, mit dem BRCC32 kompiliert (Null Problemo) und in meine Exe eingefügt, die dann prompt über 50k groß war. Wie gesagt, ca. 30k allein nur für´s Icon - du siehst also, wie groß der Programmcode war. :-) Das ist für mich ein "arg buntes" Symbol ... Eine Alternative zum schrottigen Bild-Editor von Delphi wäre MicroAngelo. Das Tool ist direkt für Symbole und Co. geschrieben, und damit habe ich auch das besagte Ausschalt-Icon aus der XP-"shell32.dll" extrahieren können. Gruß, Mathias. |
Na ja es gibt ja noch andere Programme, mit denen man Icons erstellen kann. Michel Angelo oder wie das heißt oder Icon Edit.
Den Bildeditor von Delphi kenne ich übrigens gar nicht, weil es kein vollständiger Ressourcen-Editor ist, welchen ich aber brauche, wenn ich mir Dialogressourcen erstelle. |
Moin Zusammen,
weiss zufällig jemand noch den Link auf den Icon Editor von Microsoft? Als ich diesen Thread hier sah wollte ich mir den wieder runterladen, kann aber den Link nicht mehr wiederfinden. @Luckie: Du meinst MicroAngelo. In der letzten c't wurde auch noch IconXP beschrieben. Intensiv getestet hab' ich das aber noch nicht. |
Also wenn hier jemand dann auch noch n Link zu 'MicroAngelo' oder 'Icon Edit' reinstellen könnte .. ich glaub dann wär ich echt glücklich .. :)
|
Für was sind Suchmaschinen denn überhaupt da?
Versuchs mal ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:26 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