Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Icon/Bild für eigene Komponente erstellen (BDS 2006) (https://www.delphipraxis.net/89310-icon-bild-fuer-eigene-komponente-erstellen-bds-2006-a.html)

CK_CK 29. Mär 2007 09:56


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

franktron 29. Mär 2007 11:05

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

scrat1979 29. Mär 2007 12:11

Re: Icon/Bild für eigene Komponente erstellen (BDS 2006)
 
Hallo CK_CK,

vielleicht kann dir Folgender Thread etwas weiterhelfen. Ich hatte auch mal bei google was gefunden, allerdings finde ich es momentan nicht :wall:

Als Resourceeditor empfehle ich Dir "Xn Resource Editor".

SCRaT

CK_CK 29. Mär 2007 13:57

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

Flocke 29. Mär 2007 13:59

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:
TMEINEKOMPONENTE BITMAP "TMeineKomponente.bmp"
Die kannst du dann mit
Code:
brc32.exe /Fo TMeineKomponente.dcr TMeineKomponente.rc
umwandeln.

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:
TMEINEKOMPONENTE BITMAP "TMeineKomponente.bmp"
TMEINEKOMPONENTE16 BITMAP "TMeineKomponente16.bmp"
TMEINEKOMPONENTE32 BITMAP "TMeineKomponente32.bmp"
Hinweis: die eigentlichen Dateinamen sind egal - nur die Ressourcen müssen so heißen wie deine Komponente (inkl. T am Anfang).

// Edit: Ressourcennamen in Großschrift geändert.

turboPASCAL 29. Mär 2007 14:40

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:
; ResName  |   ResTyp | Path/ResFile
; ----------+-----------+----------------------
TBassDLLPlayer Bitmap "TBassDllPlayer.bmp"
TBassPlayer Bitmap "TBassPlayer.bmp"
Speichere diese ab und kompeliere sie mit dem Borlandresourcecompieler über die Console zB. so:

Code:
brcc32.exe -r ".\res\BassDllPlayer.rc" -fo".\BassDllPlayer.dcr"
Das wars schon. Das "Einbinden" in die Komponente mach du einfach in dem du über
"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:

CK_CK 29. Mär 2007 14:44

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:
TMYCOMPONENT BITMAP "icon32.bmp"
TMYCOMPONENT16 BITMAP "icon16.bmp"
TMYCOMPONENT21 BITMAP "icon32.bmp"
Ich konnte das auch mit brcc32.exe kompilieren. (Gibt's einen Unterschied zwischen brc32.exe und brcc32.exe?)

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:

MagicAndre1981 10. Apr 2007 13:12

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:

MagicAndre1981 10. Apr 2007 16:29

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:

http://s6.bilder-hosting.de/img/XGNGJ.png

scrat1979 10. Apr 2007 17:23

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 16:07 Uhr.
Seite 1 von 2  1 2      

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