![]() |
Komponenteneditor für Delphi XE - Wegweiser?
Hallo alle,
ich habe eigene Komponenten und eine Exe, die mir (quasi als Experte) pas-Dateien für und mit diesen Komponenten erstellt. Die erzeugten Units (Klassendefinitionen für Spieler, Mannschaften, Sportarten etc.) binde ich dann in mein Projekt ein und kann sie komfortabel verwenden. -> Ich muss diese allerdings derzeit AUßERHALB von Delphi erzeugen und möchte dies gern über eine Komponente (Doppelklick) in der Delphi-IDE ausführen. Im Objektinspector kann ich Komponenten eine Eigenschaft zuweisen, die dann zur Darstellung und Bearbeitung genutzt wird (z.B. TPlayer.FirstName). Ein Edit bietet also die Bearbeitung eines Vornamens an. -> Den Propertyname muss ich derzeit von Hand schreiben und möchte gern einen Propertyeditor zur Auswahl der vorhandenen Eigenschaften anbieten. Ich habe habe dieses ![]() Über einen Doppelklick auf eine Controller-Komponente möchte ich ein Formular öffnen, in dem ich u.a. ein Memo bearbeiten kann und dann daraus Units erzeugen lasse (meine externe Exe macht das schon zur vollsten Zufriedenheit, die Funktionsweise müsste also nur noch in einen Komponenteneditor übertragen werden). Aber wie kann ich die generierten Units dann automatisch in das aktuelle Projekt bzw. ein anzugebendes Package importieren? (Wie) Geht das? Wenn die Units erzeugt und installiert wurden, möchte ich dann deren Eigenschaften im Objektinspektor auswählen und meinen Komponenten (z.B. einer Edit-Ableitung) zuweisen (wie die Felder in einem TTable). Grundsätzlich geht das schon, aber halt nicht in Form einer Property-Auswahl. In dem Bereich habe ich noch keinerlei Erfahrungen und suche eine Info für den Einstieg - bestenfalls gleich passen für XE. |
AW: Komponenteneditor für Delphi XE - Wegweiser?
Nun habe ich mich mal mit der Thematik beschäftigt und sogar etwas zustande bekommen :wink:
Da die Hilfestellungen recht dünn gesät sind, mal von mir eine ![]() Daniel: Das passiert, wenn so lange keine Videos von Dir kommen! :-D Vielleicht kann es ja mal jemanden helfen. Wenn man die ersten Verständnisschwierigkeiten überwunden hat, ist es gar nicht mehr ganz so schwer... Zum Schluß möchte ich auch gern selbst noch Hilfe, wie ich Units, die mein Komponenteneditor erstellt, automatisch in ein bestimmtes, anzugebendes Package laden kann. Lässt sich so etwas aus dem Komponenteneditor heraus "veranlassen"? Vielleicht weiß ja jemand Rat... |
AW: Komponenteneditor für Delphi XE - Wegweiser?
Zitat:
Viele Grüße, Florian |
AW: Komponenteneditor für Delphi XE - Wegweiser?
Ich habe die Verfahrensweise jetzt unter XE3 (für FireMonkey) wiederholt.
Die Erklärung ist fast vollständig unter dem DocWiki zu finden. (Endlich mal ein Pluspunkt für Emba.) Nur dass man die designide.dcp dem Package unter erforderlich hinzufügen muss ist nicht komplett beschrieben. Aber nun meine Frage: Ich möchte meinem Komponentendialog (dem Formular) ein MainMenu hinzu fügen. Dieses wird aber nicht angezeigt und wohl irgendwie der Hauptanwendung zugeordnet. Kennt jemand eine Lösung? Ich würde ganz gern ein Mainmenu verwenden (auch wenn es etwas ungewöhnlich sein mag). EDIT: TMenuBar geht... |
AW: Komponenteneditor für Delphi XE - Wegweiser?
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hatte jetzt Schwierigkeiten, meinen Eigenschaftseditor einzuführen...
...und das nun darauf eingeschränkt, dass es sich dort um eine generische Liste gehandelt hat (die ich per Formular füllen will). Wenn ich den Eigenschaftseditor für "TssColumn" oder "TObjectList<ssCustomItemsBox.TssColumn>" definiere, wird er nicht benutzt. Für die temporäre Klasse "TssColumns_" funktioniert es dagegen. Muss ich für die Eigenschaft eine "richtige" Klasse definieren oder gibt es auch eine Möglichkeit eines Eigenschaftseditors für eine generische Klasse? Da wäre natürlich sonst unschön, sowohl wegen der Mehrarbeit als auch dem unterschiedlichen Handling gegenüber anderen Eigenschaften.
Delphi-Quellcode:
TssColumn = class(TComponent)
public ... end; TssColumns = TObjectList<TssColumn>; TssColumns_ = class(TComponent) ... end; |
AW: Komponenteneditor für Delphi XE - Wegweiser?
Vergiss diese generischen Listen.
Möchte man eine Liste von Objekten im Objektinspektor sichtbar und editierbar machen, muss man die Liste von TCollection und die einzelnen Objekte von TCollectionItem ableiten. Ein Beispiel dafür sind die Klassen TFieldDef (<=Itemklasse) und TFieldDefs (<=Collectionklasse). Wichtig ist noch bei der Klasse die man von TCollectionItem ableitet die Methode Assign zu überschreiben. |
AW: Komponenteneditor für Delphi XE - Wegweiser?
Ok, danke.
Ich habe jetzt einen eigenen Container gebaut, der die generische Liste verwaltet (ist etwas schlanker und flexibler als TCollection und direkt von TComponent abgeleitet). Ist natürlich etwas aufwendiger, als wenn man direkt die generische Liste nutzen könnte. Auf TCollection bin ich nicht festgelegt, da ich ohnehin einen eigenen Editor bauen will. |
AW: Komponenteneditor für Delphi XE - Wegweiser?
Das etwas basierend auf
Delphi-Quellcode:
schlanker als eine
TComponent
Delphi-Quellcode:
sein soll, halte ich für eine sehr gewagte Aussage ;)
TCollection
|
AW: Komponenteneditor für Delphi XE - Wegweiser?
TCollection beinhaltet Funktionen zum Zeichnen der Einträge, die ich nicht brauche.
Ich wollte darauf hinweisen, dass man TCollection nicht nutzen "muss", sondern einen Container auch selbst definieren kann. |
AW: Komponenteneditor für Delphi XE - Wegweiser?
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz