![]() |
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 |
Re: Icon/Bild für eigene Komponente erstellen (BDS 2006)
Achte auf meinen letzten Beitrag. Du musst die .rc-Datei so:
Code:
füllen. Dann funktioniert es auch ;)
TMYCOMPONENT BITMAP "icon32.bmp"
TMYCOMPONENT16 BITMAP "icon16.bmp" [b]TMYCOMPONENT32[/b] BITMAP "icon32.bmp" Ich hatte aus Versehen "TMYCOMPONENT21" geschrieben... Viele Grüße, Chris |
Re: Icon/Bild für eigene Komponente erstellen (BDS 2006)
Zitat:
1. Entwerfe 1-3 Bitmaps. Die Standardgröße ist 24x24, die Größen 16x16 und 32x32 werden für die kleinen und großen Listeneinträge ab BDS2005 benutzt. Ich nenne die jetzt mal "TMyCompo24.bmp" sowie "TMyCompo16.bmp" und "TMyCompo32.bmp", die Dateinamen sind aber eigentlich egal. 2. Erstelle eine RC-Datei mit dem folgenden Inhalt (ich nenne sie mal MyCompo.rc):
Code:
Die unteren beiden Zeilen brauchst du nur, wenn du die Bitmaps in diesen Größen auch wirklich gemacht hast. Wichtig ist das "TMYCOMPO" am Anfang der Zeilen - das muss der Name deiner Komponente in Großbuchstaben sein.
TMYCOMPO BITMAP "TMyCompo24.bmp"
TMYCOMPO16 BITMAP "TMyCompo16.bmp" TMYCOMPO32 BITMAP "TMyCompo32.bmp" 3. Diese RC-Datei musst du nun übersetzen mit BRCC32.EXE
Code:
Die Dateinamen kannst du dir beliebig aussuchen, wichtig ist abschließend:
BRCC32.EXE /R /Fo MyCompo.dcr MyCompo.rc
4. Genau diese DCR-Datei musst du in der Projektdatei (DPR) angeben:
Delphi-Quellcode:
// Da ist mir CK_CK wohl etwas zuvorgekommen...
{$R 'MyCompo.dcr'}
|
Re: Icon/Bild für eigene Komponente erstellen (BDS 2006)
:? grml, ich krieg gleich einen Koller
ich hab es so gemacht, wie ihr es beschrieben habt. Nix, in der Toolpalette seh ich das Icon nicht. :wiejetzt:
Code:
Das ist die rc und mit dem Befehl
TDETECTWINVERSION BITMAP "TDetectWindowsVersion24.bmp"
TDETECTWINVERSION16 BITMAP "TDetectWindowsVersion16.bmp" TDETECTWINVERSION32 BITMAP "TDetectWindowsVersion.bmp"
Code:
übersetzt. Die dcr ist im Projekt, aber wie gesagt auf der Form hat die Kompo das Icon aber in der Toolpalette nicht. :wall:
brcc32.exe -r ".\DetectWinVersion.rc" -fo".\DetectWinVersion.dcr"
Vllt ist das auch ein Bug im Delphi 2007. |
Re: Icon/Bild für eigene Komponente erstellen (BDS 2006)
Was hast du denn für eine Farbtiefe für die Bitmaps? Mit 16 Farben sollte das immer funktionieren.
:gruebel: |
Re: Icon/Bild für eigene Komponente erstellen (BDS 2006)
Zitat:
|
Re: Icon/Bild für eigene Komponente erstellen (BDS 2006)
Existieren denn alle Bilddateien? Und haben die größeren Bilder 32x32 Pixel und das kleine 16x16 Pixel?
Hast du sie unkomprimiert als .bmp gespeichert? (Am besten mit "Paint") Kleiner Tipp noch: Wenn du transparente Bereiche Willst, musst du diese mit clFuchsia, also R 255, G 0, B 255 füllen. Viele Grüße, Chris |
Re: Icon/Bild für eigene Komponente erstellen (BDS 2006)
Zitat:
|
Re: Icon/Bild für eigene Komponente erstellen (BDS 2006)
Zitat:
@MagicAndre1981, binde die Datei mal als *.res in die Kompo ein. Ich glaube mich zu erinnern das ich das selbe Probl. schon mal bei D2k5 hatte... :gruebel: |
Re: Icon/Bild für eigene Komponente erstellen (BDS 2006)
Zitat:
|
Re: Icon/Bild für eigene Komponente erstellen (BDS 2006)
nun gehts :firejump:
die 24x24 Bitmap war als 16Bit gespeichert :wall: :wall: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:09 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