Einzelnen Beitrag anzeigen

Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#4

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

  Alt 16. Jul 2006, 14:44
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.
In meinem Beispiel wurde aus "Component1.bmp" "DP.ToolBoxIconSample.Lib.Component1.bmp".

Zitat:
Was genau meinst Du mit explizit registrierst und VS? VisualStudio - nein, sondern Borland-IDE. Registrierung durch Komponente | Installierte NET-Komponente (ggf. Assembly hinzufügen)
Ich meinte das Gegenstück davon im VS, also nicht dass er sie von alleine in die Toolbox holt wenn du das Projekt öffnest. Ich habe mal die gleichen Dateien benutzt, die ich damals in dem anderen Thread benutzt habe. Diesmal habe ich die Komponenten aber nicht explizit registriert sondern sie autom. von der IDE in die Toolbox ziehen lassen. Wie du im Screenie siehst hat man dann dort keine Icons, im Designer aber schon.
Zitat:
zeigt nur das Zahnrad; wenn ich die Komponente in der Assembly prüfe (z.B. durch Reflection), wird mir der richtige Dateiname *.bmp angezeigt.
Schaue mal mit dem Reflector (nicht mit dem Viech, das im BDS mitgeliefert wird) wie die Resource des Bildes heißt. Vllt kannst du einen Screenie davon anhängen? (Ich habe den von meiner Lib mal hier ebenfalls angehängt, das Gegenstück dazu wäre dann von dir notwendig um dir weiterhelfen zu können)
Miniaturansicht angehängter Grafiken
dp.toolboxiconsample.ide_screenie_609.png   dp.toolboxiconsample.reflector_screenie_201.png  
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat