Einzelnen Beitrag anzeigen

Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#5

Re: ComboBox-Derivat: Toolbox-Bitmap und Button-Bitmap änder

  Alt 17. Jul 2006, 12:55
Zitat von Elvis:
Du kannst im gleichen Ordner, in dem die Komponente liegt, ein Bild mit dem Namen DeineKomponente.bmp anlegen. Darauf zielt der Kontruktor von TollBoxIconAttribute ab, der nur einen Parameter vom Typen System.Type schluckt. Dieser Datei verpasst du die Build action "embedded resource" (siehe screenie rechts oben, dort ist die Component1.bmp gerade selektiert).
Der Kompiler wird die Datei dann automatisch als Resource in deine Assembly kompilieren, wobei er den Default namespace deiner assembly als Präfix nutzt.
Ich habe beide Varianten versucht - ohne Unterschied:
Code:
[ToolboxBitmap(typeof(uFilenameDlg))] //  oder:
[ToolboxBitmap(typeof(uFilenameDlg), "uFilenameDlg.Bmp")]
Könnte es sein, dass Borland-IDE und Compiler die unterschiedlichen Ergebnisse verursachen? Ich bilde mir ein, dass ich die Borland-IDE kenne; aber ich finde nichts, wie ich eine Bmp-Ressource gezielt einbinde und mit Build action "embedded resource" verknüpfen könnte.

Zitat von Elvis:
Schaue mal mit dem Reflector (nicht mit dem Viech, das im BDS mitgeliefert wird) wie die Resource des Bildes heißt...
Den Screen kann ich mir sparen; Roeder-Reflector zeigt, dass die Bmp tatsächlich nicht richtig eingebunden wurde, sondern dem Standard-Namespace zugeordnet wurde:
Zitat:
Standard-Namespace der Assembly lautet: JThomas.Forms
Der Namespace der Komponente lautet: JThomas.Forms.Controls
Ich habe jetzt die Bitmap umbenannt in Controls.uFilenameDlg.Bmp; jetzt wird sie mit dem richtigen Namespace angezeigt. Aber in der Komponentenpalette steht weiterhin das Zahnrad.

Vielleicht verzichten wir doch auf weitere Versuche. Es handelt sich in diesem Fall ja nur um einen Schönheitsfehler; und wir können alles auf Borland schieben...

Trotzdem danke für die Tipps! Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat