Ich möchte TToolBar mit einer anderen Klasse namens MyTToolBar Unterklasse, so dass ich eine Methode überschreiben kann. Ich bin neu in Delphi, aber nach zwei Stunden, in denen ich verschiedene Methoden ausprobiert habe, kann ich MyTToolBar nicht anstelle von TToolBar verwenden. Ich kann nicht die erste Person sein, die eine Methode für eine visuelle Komponentenklasse überschreiben möchte.Delphi Unterklasse visuelle Komponente und verwenden Sie
Ich komme mehr aus einem Xcode-Hintergrund, wo Unterklasse eine visuelle Komponente ist einfach. Sie erstellen eine Unterklasse (z. B. MySubclass) einer übergeordneten Klasse (z. B. MySuperClass) und weisen dann einfach die Unterklasse in der Interface Builder-Ansicht von Xcode zu. Die Unterklasse wird automatisch erkannt und verwendet.
Warum kann ich das in Delphi RAD Studio XE3 nicht tun?
Nach dem Hinzufügen einer TToolBar zu einem TForm scheint es nicht möglich, die Klasse zu ändern. Ich habe den Objektinspektor sowie die .PAS-Quellcodedatei ausprobiert. Wenn ich die Klasse in der .PAS-Datei ändere, erhalte ich die Fehlermeldung, dass die Symbolleiste "vom Typ Vcl.ComCtrls.TToolBar sein sollte, aber als MyTToolbar deklariert ist. Korrigiere die Deklaration?" Das scheint einfach albern zu sein ...
Oh, und ich habe auch den Assistenten für neue Komponenten verwendet: Datei -> Neu -> Andere -> Delphi-Projekte -> Delphi-Dateien -> Komponente. Ich wähle den Vorgänger für MyTToolBar als TToolBar aus und sage ihm, dass er auf der Palettenseite "Samples" registriert werden soll. Es erscheint jedoch nicht auf der Seite "Samples".
In Bezug auf Ihren letzten Absatz behandelt meine Antwort dieses Problem (der Teil über das Erstellen eines Pakets zuerst und das Installieren dieses Pakets am Ende, nachdem Ihre Komponente erstellt wurde). –
.. Vielleicht war ich falsch über die enge Abstimmung, dies scheint nicht über Laufzeit zu sein ... Ich glaube, [Dokumentation] (http://docwiki.embarcadero.com/RADStudio/XE3/en/Introduction_to_component_creation_Index) ist ziemlich Umfassende Informationen zum Erstellen von Komponenten zur Entwurfszeit. –
@KenWhite Danke für die Information über die Verpackung der Komponente. Ich war auf der Suche nach der Möglichkeit, die Komponente während der Entwicklung spontan zu ändern und wollte daher die Verpackungslösung für diese einfache Überschreibung nicht verwenden. – spurgeon