![]() |
Icon/Bild für eigene Komponente erstellen (BDS 2006)
Hallo,
ich bin schon ewig auf der Suche danach, aber ich finde einfach keine Anleitung... Also, früher konnte man mit D6 einfach mit einem beiliegendem Programm eine dcr-Datei erstellen und via "{$R 'icon.dcr'}" in die eigene Komponente einfügen. Dadurch konnte man in der Komponentenpalette ein anderes Icon, als das Standard-Icon sehen. Meine Frage ist nun: Wie geht das bei Delphi 2006? Ich finde nirgendwo diesen Bild-Editor, der früher bei Delphi dabei war. Macht man das heute anders? Wenn ja: Wie? Würde mich über eine kleine Kurzanleitung freuen... :stupid: Viele Grüße, Chris |
Re: Icon/Bild für eigene Komponente erstellen (BDS 2006)
Ist eine DCR nicht ein ICO ??? oder ein BMP irgendwas in der art wahr das doch
|
Re: Icon/Bild für eigene Komponente erstellen (BDS 2006)
Hallo CK_CK,
vielleicht kann dir Folgender ![]() Als Resourceeditor empfehle ich Dir "Xn Resource Editor". SCRaT |
Re: Icon/Bild für eigene Komponente erstellen (BDS 2006)
Hi!
Vielen Dank schonmal für die Antworten. Leider haben sie mir noch nicht geholfen, da 1. ich nicht mit .NET arbeite, sondern mit Win32-Delphi 2. dcr-Dateien glaube ich irgendwelche Resourcen-Dateien sind und keine ico/bmp-Dateien. :cry: Anscheinend bin ich der einzige mit dem Problem... Ist denn bei D2006 der Bild-Editor DOCH dabei und nur bei mir nicht? :gruebel: Chris |
Re: Icon/Bild für eigene Komponente erstellen (BDS 2006)
Ein wenig genauer (ist in dem anderen Thread aber teilweise schon beschrieben): eine DCR-Datei ist vom Format her einfach eine RES-Datei.
Male dir eine 24x24 Bitmap für deine Komponente und schreibe dir eine RC-Datei mit dem Inhalt
Code:
Die kannst du dann mit
TMEINEKOMPONENTE BITMAP "TMeineKomponente.bmp"
Code:
umwandeln.
brc32.exe /Fo TMeineKomponente.dcr TMeineKomponente.rc
Ab BDS2005 unterstützt Delphi auch kleine (16x16) und große (32x32) Symbole. Das kannst du auch machen, indem du dir für diese Größen ebenfalls Bitmaps erstellst und die RC-Datei wie folgt erweiterst:
Code:
Hinweis: die eigentlichen Dateinamen sind egal - nur die Ressourcen müssen so heißen wie deine Komponente (inkl. T am Anfang).
TMEINEKOMPONENTE BITMAP "TMeineKomponente.bmp"
TMEINEKOMPONENTE16 BITMAP "TMeineKomponente16.bmp" TMEINEKOMPONENTE32 BITMAP "TMeineKomponente32.bmp" // Edit: Ressourcennamen in Großschrift geändert. |
Re: Icon/Bild für eigene Komponente erstellen (BDS 2006)
*.dcr Dateien sind im grunde eine art Resourcedateien (*.res).
Falls du keinen Bileditor (Borland Image Editor) zu deinem Delphi hast macht das auch nix. Erstelle dir eine Resourcetextdatei zB.:
Code:
Speichere diese ab und kompeliere sie mit dem Borlandresourcecompieler über die Console zB. so:
; ResName | ResTyp | Path/ResFile
; ----------+-----------+---------------------- TBassDLLPlayer Bitmap "TBassDllPlayer.bmp" TBassPlayer Bitmap "TBassPlayer.bmp"
Code:
Das wars schon. Das "Einbinden" in die Komponente mach du einfach in dem du über
brcc32.exe -r ".\res\BassDllPlayer.rc" -fo".\BassDllPlayer.dcr"
"Komponente insalieren" -> "Durchsuchen" etc. deine Unit hinzufügst. Delphi sucht dann selbstständig in diesem Path nach einer *.dcr - Datei und bindet sie in das Package ein. Das hinzufügen über den Compilerschalter {$R ...} in der Unit der Komponente halte ich für Unsin, da dann das/die Bitmaps auch in die Kompilierte Anwendung mit aufgenommen werden wo man sie ja nu nicht braucht. Das Package schaut dann ungefähr so aus:
Delphi-Quellcode:
package BassDLLpkg;
{$R *.res} {$R 'BassPlayer.dcr'} // <--<<< {$ALIGN 8} // ... etc. {$IMPLICITBUILD OFF} requires rtl, vcl; contains Bass203 in 'bass203.pas', BassPlayer in 'BassPlayer.pas'; // <--<<< end. // Edit: Irgend wie hätte ich mir das Sparen können, Flocke war nu 40 min schneller. Habs aber nicht gesehen... :gruebel: |
Re: Icon/Bild für eigene Komponente erstellen (BDS 2006)
Vielen Dank :thumb:
Das hat geklappt. Ich musste aber beide Resourcen (32 und 16 px) einfügen, damit das Icon auch in der Palette UND auf dem Formular angezeigt wird. Meine rc-Datei sieht folgendermaßen aus:
Code:
Ich konnte das auch mit brcc32.exe kompilieren. (Gibt's einen Unterschied zwischen brc32.exe und brcc32.exe?)
TMYCOMPONENT BITMAP "icon32.bmp"
TMYCOMPONENT16 BITMAP "icon16.bmp" TMYCOMPONENT21 BITMAP "icon32.bmp" Als Hintergrundfarbe habe ich 255,0,255 (clFuchsia) genommen, dadurch wird das Icon sogar transparent dargestellt... :stupid: Die erzeugte dcr-Datei habe ich dann in der Unit der Komponente via "{$R "icon.dcr"}" eingebunden. Also, vielen Dank nochmal, Chris EDIT: Auch an turboPascal vielen Dank! Der Tipp mit dem $R... in das Package und nicht in die Unit ist gut... Wär' ich nicht drauf gekommen... :mrgreen: |
Re: Icon/Bild für eigene Komponente erstellen (BDS 2006)
ich hab das auch probiert, aber nix passiert.
Wie muss die .dcr genau lauten und wie die .rc? Warum kann das nicht so schick wie in .NET sein, da muss ich nur ein Attribut setzen :wall: |
Re: Icon/Bild für eigene Komponente erstellen (BDS 2006)
so, das icon ist nun auf der Kompo wenn ich sie auf die Form haue, aber nicht in der Toolpalette :wall:
![]() |
Re: Icon/Bild für eigene Komponente erstellen (BDS 2006)
Hallo!!
Das passiert mir komischerweise mit meinen eigenen Komponenten auch hin und wieder. Wenn Du die Möglichkeit hast, dann installiere mal Dein Package auf einem anderen System und schaue ob es da nicht korrekt in der Toolbar angezeigt wird. Ich persönliche denke es handelt es sich dabei um eine Eigenart der IDE!!! SCRaT |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:03 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