Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Anwendung mit mehreren Icons ? (https://www.delphipraxis.net/284-anwendung-mit-mehreren-icons.html)

erniepb 28. Jun 2002 16:04


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 !!

sakura 28. Jun 2002 16:18

Die weiteren Icons separat speichern und dann eine RC Datei erstellen und diese in das Projekt einbinden :)

Ein FAQ! Beitrag zum RC Files

sakura 28. Jun 2002 16:19

Ah, der zweite Parameter in der RC Datei muss ICON sein

Code:
ProjectIcon ICON "icons/project.ico"
ProjectImage ICON "icons/image.ico"
...

erniepb 28. Jun 2002 16:42

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

Luckie 28. Jun 2002 16:51

Ich gehe jede Wette ein, du hast nicht auf den Link von sakura geklickt.

erniepb 28. Jun 2002 17:05

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

Luckie 28. Jun 2002 17:25

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?

erniepb 28. Jun 2002 17:39

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

sakura 28. Jun 2002 18:16

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

erniepb 28. Jun 2002 18:26

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

sakura 28. Jun 2002 19:25

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:

erniepb 28. Jun 2002 19:38

süßes kätzchen .. wo find ich n die FAQ mit den erstellen und einbinden von Resourcen .. hier hab ich nich wirklich was gefunden ..

Daniel B 28. Jun 2002 19:42

Siehe zweites Posting(von sakura), da ist ein Link drin.

sakura 28. Jun 2002 19:51

Mein erster Beitrag hat den Link direkt zum FAQ... :roll:

RomanK 28. Jun 2002 20:39

Also fang ich mal an..:
  • Am Start kommt erst mal nen Fehler (nur beim ersten Mal) und dann wird die Konfiguration gestartet, aber das Programm muss dann nochmal gestartert werden, damit man loslegen kann. Wenn du das nicht direkt machst solltest du wenigstens darauf hinweisen dass man es nochmal starten soll!!
  • Wenn man einen Neuen User macht ist dass Passwort nicht verdeckt !!!!!!!!
  • Als ich nach dem Erstellen eines User dass falsche DB-Passwort hatte, hat er mir dieses in der Error-Message angezeigt, jetzt macht er dass aber nicht mehr :lol: , aaaahhhh ne es war nen String anstatt eines Integers :mrgreen:!!!


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]

Luckie 28. Jun 2002 21:28

Ich habe mir auch gerade übeerlegt, wo hier der Zusammenhang sein soll :what:.

erniepb 29. Jun 2002 10:55

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

sakura 29. Jun 2002 10:59

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)

Marco Haffner 29. Jun 2002 21:36

Reicht es nicht eigetlich aus die dfm-Datei in eine txt-Datei umzubenennen un mit convert.exe aus dem Delphi\bin-Verzeichnis zu konvertieren :?:

erniepb 5. Jul 2002 09:26

wie ruf ich n die convert.exe auf .. so dass dann halt auch die *.dfm dekompiliert wird ??

sakura 5. Jul 2002 09:33

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:

erniepb 5. Jul 2002 09:50

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:

sakura 5. Jul 2002 09:58

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.

erniepb 5. Jul 2002 10:22

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]

sakura 5. Jul 2002 10:46

Schau mal, ob in Deiner Projektdatei (DPR) die Zeile
Code:
{$R 'SampleRes.res' 'SampleRes.rc'}
, enstprechend Deiner Dateinamen, vorhanden ist. Ansonsten fällt mir auch nichts weiter ein. Sorry.
:cat:

erniepb 5. Jul 2002 11:57

nee ist nich drin .. nur die Zeile:
{$R *.RES}

wo müsst ich denn deine Zeile einfügen .. dadrunter oder ist das egal ??

sakura 5. Jul 2002 12:02

Meine Projektdatei schaut wie folgt aus
Code:
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.
:cat:

erniepb 5. Jul 2002 12:19

hab die Zeile einfach mal eingefügt .. dann kommt aber beim kompilieren die Fehlermeldung:
Fehler: (0): Datei nicht gefunden: 'SampleRes.res'

Was jetzt ??

sakura 5. Jul 2002 12:31

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:

erniepb 6. Jul 2002 17:22

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

jbg 6. Jul 2002 18:00

Zitat:

Zitat von sakura
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

Und für was denkst du, dass Borland den Resourcen Compiler brcc32.exe mit Delphi ausliefert? Der ist im Ordner $(DELPHI)\bin zu finden. Wenn schon Borland, dann aber gleich ganz und nicht so ein Mischmasch MS-Borland.

erniepb 7. Jul 2002 00:51

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 ??

MathiasSimmack 7. Jul 2002 07:57

Als Beispiel für den Borland-Ressourcencompiler:

Code:
brcc32 MeinSkript.rc
erzeugt als Ergebnis "MeinCode.res"
Code:
brcc32 MeinSkript.rc -foMeineRessource.res
erzeugt als Ergebnis "MeineRessource.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!)

erniepb 7. Jul 2002 12:31

Zitat:

per Hand schreibe und das arg bunte Icon angebe
was is n das arg bunte Icon ?? --> Argument: buntes Icon ?? wenn ja wie is heißt n das Argument für n Icon mit mehr als 256 Farben ?? und vorallem wie kann ich mir denn dann dieses Icon erstellen --> weil der Bildeditor aller Delphi fällt ja dann wirklich flach ..

MathiasSimmack 7. Jul 2002 13:27

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.

Luckie 7. Jul 2002 13:28

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.

Christian Seehase 7. Jul 2002 15:15

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.

erniepb 7. Jul 2002 17:50

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

jbg 7. Jul 2002 18:19

Für was sind Suchmaschinen denn überhaupt da?
Versuchs mal damit. Die Begriffe stehen ja schon oben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz