Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   C# C# - Componente, wo kommt das Icon hin (https://www.delphipraxis.net/65550-c-componente-wo-kommt-das-icon-hin.html)

Alter Mann 17. Mär 2006 19:10


C# - Componente, wo kommt das Icon hin
 
Hallo,

ich habe eine Komponente in C# geschreiben, nun möchte ich dieser auch ein Icon zuweisen
welches in der Toolbox angezeigt wird, aber ich weiß nicht wie.

Achso, das ganze soll unter C#-Express funktionieren.

Kann es einer Erklären?

Gruß

Khabarakh 17. Mär 2006 19:42

Re: C# - Componente, wo kommt das Icon hin
 
Delphi-Referenz durchsuchenToolBoxBitmapAttribute :)
Das Icon kannst du dafür als Resource einbinden.

Alter Mann 19. Mär 2006 15:22

Re: C# - Componente, wo kommt das Icon hin
 
Danke, der Tip hat geholfen.

Es ist allerdings schon Merkwürdig, das System.Drawing sowohl unter Verweise im Projektmappen-Explorer, als auch
unter using, eingebunden werden muss. Ansonsten kommt eine Fehlermeldung.

Khabarakh 19. Mär 2006 15:58

Re: C# - Componente, wo kommt das Icon hin
 
Die using-Direktive hat mit der Assembly-Referenzierung nichts zu tun, es ist lediglich eine Abkürzung, damit du den Namespace der Typen nicht mehr angeben musst.

Alter Mann 18. Apr 2006 19:24

Re: C# - Componente, wo kommt das Icon hin
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich war wohl etwas voreilig. Aus der MSDN werde ich auch nicht schlau.
Zitat:

Wenn in Microsoft Visual Studio .NET eine Bilddatei (z. B. MyBitmap.bmp) in eine Assembly eingebettet wird, wird dem Namen der Bilddatei der Name des Standardnamespaces vorangestellt.
Was heisst hier 'eingebettet'? Ich klicke das Projekt an, wähle Hinzufügen, Neues Element hinzufügen und dann Bitmapdatei, ist das Richtig?

Zitat:

namespace NamespaceA
{
[ToolboxBitmap(typeof(ControlA), "MyBitmap.bmp")]
public class ControlA : System.Windows.Forms.UserControl
{
...
}
...
}
Weiter heisst es:
Zitat:

Im obigen Beispiel wird die Bitmap folglich als eine Ressource mit dem Namen AssemblyA.MyBitmap.bmp eingebettet. Zum Abrufen des richtigen Ressourcennamens (MyNamespace.MyBitmap.bmp) müssen Sie den Standardnamespace von MyAssembly in MyNamespace ändern.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie Eigenschaften aus. Geben Sie in Allgemeine Eigenschaften im Bereich Allgemein den richtigen Standardnamespace ein.
Also den Eigenschaftseditor geöffnet und einen gleichlautenden Namen für Assembly und Namespace eingetragen.
Das ganze neu erstellen lassen und neu eingebunden, Resultat = 'Zahnrad'.

Was mach ich Verkehrt?
Die Compo ist stammt zwar nicht von System.Windows.Forms.UserControl, sondern von System.ComponentModel.Component ab, aber daran kann es doch nicht liegen.

Ich benutze VS2003(von dort auch die Screenshots).

Für die schnelle Hilfe, wie immer, dankbar

Alter Mann

Elvis 18. Apr 2006 21:52

Re: C# - Componente, wo kommt das Icon hin
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Alter Mann
Was heisst hier 'eingebettet'? Ich klicke das Projekt an, wähle Hinzufügen, Neues Element hinzufügen und dann Bitmapdatei, ist das Richtig?odel.Component[/b] ab, aber daran kann es doch nicht liegen.

Benenne die Bilddatei am besten DeineKomponente.bmp.
Dem ToolBoxItem übergibst du dann einfach nur typeof(DeineComponente) als Parameter.
Wenn du nur einen String angibst ist das der Pfad zur Datei auf der Festplatte!

Außerdem wirst du das Icon nicht sehen, wenn sich das VS die Komponente automatisch in die Toolbox zieht.
Du musst den normalen Weg über Rechtsklick->Choose Items gehen. ;)
Zitat:

Ich benutze VS2003(von dort auch die Screenshots).
Dann empfehle ich dir schleunigst die Trial von R# auszuprobieren.
Wenn du auf's VS05 umsteigst wird mit etwas Glück die Version dafür benutzbar sein. Kosten wird dich R#2 nix wenn du R#1 hast.
Glaube mir, so cool VS05 ist, ohne R# ist es irgendwie nur eine Krücke, verglichen mit VS03 + R#. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:12 Uhr.

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