Autor Beitrag
Anfänger
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

WinXP
D3 Prof
BeitragVerfasst: So 01.02.04 16:57 
Ich habe in folgendem Link gelesen, wie man Icons neben der Uhr erstellt und bearbeitet.
www.delphi-forum.de/viewtopic.php?t=8294

Dort sind IDI_INFORMATION und IDI_WARNING als Icons angegeben.

Nun möchte ich natürlich mein eigenes Icon stattdessen da stehen haben.
Aber wie stelle ich das an?
GruppeCN
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 322



BeitragVerfasst: So 01.02.04 17:00 
Gib einfach anstatt LoadIcon den Pfad zu deinem Icon an...

_________________
Warum sind die Sachen, die du suchst, immer da, wo du zuletzt nachsiehst?
Weil du aufhörst zu suchen, wenn du sie gefunden hast.
Anfänger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

WinXP
D3 Prof
BeitragVerfasst: So 01.02.04 17:28 
Die Eigenschaft ist ja 'hIcon'
und ist im Beispiel so dargestllt:

ausblenden Delphi-Quelltext
1:
hIcon := LoadIcon (0, IDI_INFORMATION);					



Wenn ich jetzt, wie du sagtest LoadIcon weg lasse und den Pfad einfüge sieht das so aus:

ausblenden Delphi-Quelltext
1:
hIcon := 'C:\Dokumente und Einstellungen\Marcus\Eigene Dateien\Delphie\Symbole Bilder etc\Tabelle.ICO';					


Dabei sagt er mir, dass er einen Integerwert haben möchte.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 01.02.04 17:45 
Willst du es aus einer Datei laden, nimm LoadImage. Ich würde es aber mit LoadIcon aus der Ressource laden, dann musst du das Icon nicht extra als Datei mitliefern.
Anfänger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

WinXP
D3 Prof
BeitragVerfasst: So 01.02.04 20:20 
Sorry, habe ein problem mit LoadImage :roll:

Ich sehe, was man da angeben werden muss und verstehe nur Bahnhof.

Kann mir jemand mal bitte anhand eines Beispiels die Eingabe des LoadImage erklären?

Informationen über mein Bild:
Typ: Symbol
Name:Tabelle
Pfad:C:\Dokumente und Einstellungen\Marcus\Eigene Dateien\Delphie\Symbole Bilder etc
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 01.02.04 20:27 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
LoadImage(hInstance,
  'Pfad zum Icon\Icon.ico',
  IMAGE_ICON,
  0,
  0,
  LR_LOADFROMFILE or LR_DEFAULTSIZE);

Mit dem letzten Parameter LR_DEFAULTSIZE kannst du ja mal experimentieren. Wie is´n dein Englisch, im PSDK heißt es nämlich:
PSDK hat folgendes geschrieben:
LR_DEFAULTSIZE
Uses the width or height specified by the system metric values for cursors or icons, if the cxDesired or cyDesired values are set to zero. If this flag is not specified and cxDesired and cyDesired are set to zero, the function uses the actual resource size. If the resource contains multiple images, the function uses the size of the first image.


Wenn sich das Symbol in den Ressourcen der Exe befindet, dann geht´s auch so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
LoadImage(hInstance,
  MAKEINTRESOURCE(666),
  0,
  0,
  LR_DEFAULTSIZE);

bzw. einfacher
ausblenden Delphi-Quelltext
1:
LoadIcon(hInstance,MAKEINTRESOURCE(666));					

in der Annahme, dass das Symbol die Ressourcen-ID #666 hat. Wie man Symbole in die Ressourcen aufnimmt weißt du?
Anfänger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

WinXP
D3 Prof
BeitragVerfasst: So 01.02.04 20:50 
Ich habe es erstmal mit LoadImage versucht und es klappt.

Wenn ich das richtig verstanden habe, ist loadIcon wirklich besser, aber ich verstehe nicht, wie ich das Bild in die Exe speichern soll. :?:
GruppeCN
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 322



BeitragVerfasst: So 01.02.04 21:12 
Das musste ne Resource Datei benutzen...

_________________
Warum sind die Sachen, die du suchst, immer da, wo du zuletzt nachsiehst?
Weil du aufhörst zu suchen, wenn du sie gefunden hast.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 02.02.04 11:08 
Anfänger hat folgendes geschrieben:
Wenn ich das richtig verstanden habe, ist loadIcon wirklich besser, [...]

Besser ist es nicht, nur einfacher, weil du außer der Instanz und der Ressourcen-ID keine weiteren Parameter brauchst. Allerdings steht im PSDK:
Zitat:
Note This function has been superseded by the LoadImage function.

Ich gehe also mal davon aus, dass beim Aufruf von "LoadIcon" intern auch "LoadImage" benutzt wird.

Anfänger hat folgendes geschrieben:
[...] aber ich verstehe nicht, wie ich das Bild in die Exe speichern soll. :?:

Die einfachste Variante ist folgendes RC-Skript:
ausblenden Quelltext
1:
666 ICON "Pfad zum Icon\Icon.ico"					

Diese Zeile markieren und in den Editor kopieren und als Datei mit der Endung ".RC" speichern (ist kein Muss, macht´s aber übersichtlicher). Dann benutzt du den Ressourcencompiler von Borland, um daraus eine Ressourcendatei zu erstellen:
ausblenden Quelltext
1:
brcc32 Name.rc -foAndererName.res					

Der Parameter "-fo" samt Anhang ist nur erforderlich, wenn du für die RES-Datei einen anderen Namen verwenden willst als für die RC. Lässt du also den zweiten Parameter weg, bekommt die RES-Datei den gleichen Namen wie das RC-Skript.
Dann packst du die RES-Datei in den Quellcode deiner Anwendung. Entweder im Projektquelltext (*.dpr) oder in die Form-Unit
ausblenden Delphi-Quelltext
1:
{$R Name.res}					

Voilà, schon steckt das Icon nach dem Kompilieren in der Exe, und du kannst es mit "LoadIcon" laden. :)
Anfänger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

WinXP
D3 Prof
BeitragVerfasst: Mo 02.02.04 11:29 
Dieser Ressourcencompiler ist nicht zufällig bei Delphie 3 dabei?

Ich kann ihn weder auf der Delphi CD noch auf meinem Computer finden.

Wenn nicht, wo kriege ich den her?
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 02.02.04 12:20 
Anfänger hat folgendes geschrieben:
Dieser Ressourcencompiler ist nicht zufällig bei Delphie 3 dabei?

Bei mir (D5) ist er das. Mach doch einfach mal eine DOS-Box (MS-DOS-Eingabeaufforderung) auf und tippe dort
ausblenden Quelltext
1:
brcc32					

ein. Wenn deine Delphi-Ordner beim Setup ordnungsgemäß in den Pfad geschrieben wurden, und wenn bei D3 der Ressourcencompiler dabei ist (und ich wüsste nicht, warum er es nicht sein sollte), dann müsstest du eine entsprechende Syntaxübersicht erhalten.

Normalerweise steckt er im "bin"-Ordner von Delphi.
Anfänger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

WinXP
D3 Prof
BeitragVerfasst: Mo 02.02.04 12:27 
In dem Ordner befindet sich nur WinSight.
(keine Ahnung was das ist. Als ich es gestartet habe sah es so aus als würde es sich selbständig machen. Lauter Texte, die sich ständig änderten)
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 02.02.04 12:33 
Entschuldige bitte, aber wenn ich was von einer Datei "brcc32"(.exe) erzähle, warum startest du dann ein völlig anderes Programm? :roll:
Hm, wenn du so einer bist, dann schick ich dir mal einen Email-Wurm. Der heißt zwar auch nicht "brcc32.exe", aber das macht ja nichts, da du ihn sicher trotzdem anklickst ... :twisted:

Aber ernsthaft: Mach doch mal eine Dateisuche (Win-Taste + F) und versuche das Teil zu finden. Gib als Namen doch mal nur "brc*.*" ein, vielleicht trägt der Compiler unter D3 (noch) einen anderen Namen? Evtl. gibt´s auch einen D3-User, der dir schneller helfen kann.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 02.02.04 12:54 
woolen wir mal nicht so sein:
C:\Programme\Borland\Delphi 3\Bin
Da liegt sie bei mir. Also im gleichen Verzeichnis, wie der Kompiler und die IDE. Und wenn du dir das Verzeichnis nach den Typ sortieren läßt, dann steht sie sogar ganz oben als aller erstes. :roll:
Anfänger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

WinXP
D3 Prof
BeitragVerfasst: Mo 02.02.04 12:55 
Ein Glück, dass du meine E-MailAdresse nicht hast :wink:

Ich versteh das zwar nicht, aber eben gab es in dem Ordner wirklich nur das Programm von dem ich erzählte.
Jetzt gibt es viele :shock:

unter anderem auch BRC32 und BRCC32 beim Start öffnet sich nur ein Dos fenster macht was und schließt sich wieder. :cry:
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 02.02.04 13:05 
Logisch, ist ja auch ein Konsolen Programm. Öffne eine Konsole und starte es von da aus.
Anfänger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

WinXP
D3 Prof
BeitragVerfasst: Mo 02.02.04 13:32 
Also nochmal von vorne:
Ich habe jetzt die Datei Ressource.rc mit folgendem Inhalt:
ausblenden Delphi-Quelltext
1:
666 ICON "C:\Dokumente und Einstellungen\Marcus\Eigene Dateien\Delphie\Vertige Produkte\Terminkalender01\Symbol2.ico"					

und jetzt?
Zitat:
Dann benutzt du den Ressourcencompiler von Borland, um daraus eine Ressourcendatei zu erstellen:

verstehe ich nicht wie ich das machen soll.

Ps. Lucky: was meinst du mit Konsole?
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 02.02.04 13:58 
Ich weiß zwar nicht wer Lucky ist, aber als Konsole bezeichent der gemeine Windows Benutzer auch meist fälschlicherweise die DOS-Box. Und in selbiger rufst du den Ressourcen Kompiler auf wie Mathias es beschrieben hat.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 02.02.04 14:41 
Anfänger hat folgendes geschrieben:
Zitat:
Dann benutzt du den Ressourcencompiler von Borland, um daraus eine Ressourcendatei zu erstellen:

verstehe ich nicht wie ich das machen soll.

Zuerst "Start -> Ausführen" bzw. WIN-Taste + R, und dann abhängig von deiner Windows-Version tippst du ein
ausblenden Quelltext
1:
command					

(für 95, 98 und ME) bzw.
ausblenden Quelltext
1:
cmd					

(für NT, 2000 und XP). Dann hast du die besagte DOS-Box, Konsole bzw. MS-DOS-Eingabeaufforderung. Und da machst du dann den Rest.
Anfänger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

WinXP
D3 Prof
BeitragVerfasst: Mo 02.02.04 15:40 
Es funktionuckelt :!: :P

Nach stundenlangen Ausprobieren habe ich es gerallt :!:

Mein problem ist/war, dass der Command aus irgendeinem Grund einen
Ordnerwechsel nicht akzeptiert hat.
Nun habe ich einfach die Umwandlung in dem Ordner gemacht, in dem
der Command gestartet wurde und zum Schluss in meinen Ordner
verschoben. :roll:

Naja, jedenfalls klappt es jetzt und ich denke nicht, dass ich so schnell
vergesse, wie ich es geschaft habe.

Aber Matthias hätte das Umwandeln ruhig besser erklären können.
Ich, der soetwas noch nie gemacht habe hab natürlich erst nach
stundenlangem durchlesen und ausprobieren verstanden, was gemeint
war und soviel Zeit (ca. 5h) will bestimmt keiner opfern.


Zuletzt bearbeitet von Anfänger am Mo 02.02.04 18:52, insgesamt 5-mal bearbeitet