Ach das JvDesignPanel ist das Problem
Zitat:
Kann es sein das ich mich nicht exakt genug ausdrücke ?
Ich glaub wir haben beide aneinander vorbeigeredet
Ich nehme an, du arbeitest dich mit Hilfe des Beispiels durch die Komponente. Also soweit ich das JvDesignPanel nach 10 Minuten verstanden habe (ich arbeite nicht damit, da bei mir nichts von TControl abgeleitet ist):
Beim Starten der Anwendung muss man dem Designer erst sagen, welche Komponenten überhaupt unterstützt werden sollen. Dies geschieht im Initialization-Teil der
Unit:
Delphi-Quellcode:
initialization
RegisterClass(TButton);
RegisterClass(TLabel);
RegisterClass(TPanel);
RegisterClass(TImage);
So, sobald eine neue Komponente hinzugefügt werden soll, wird das "JvDesignPanelGetAddClass" - Event aufgerufen. Jetzt ist es so: wenn eine neue Komponente hinzugefügt werden soll, dann musst du den Klassennamen im Parameter
var ioClass: String speichern. Wenn dieser String leer bleibt, dann wird auch keine neue Klasse erstellt. Zu diesem Zeitpunkt gibt es das neue Objekt noch nicht, da das JvDesignPanel ja noch nicht mal weiß, welcher Klassentyp überhaupt erstellt werden soll. So, nachdem das Event fertig ist, wird die neue Klasse erstellt - intern im Designer. Um dann auf eine Klasse zuzugreifen, musst du wahrscheinlich auf die Property
Surface zugreifen und dich da irgendwie durchhangeln. Du kannst also in diesem Event NICHT auf das erstelle Objekt zugreifen, da es noch nicht existiert. Wahrscheinlich gibt es ein Event mit dem Namen (OnItemSelected) oder so ähnlich. Dort wirst du entweder das Item direkt als Parameter übergeben bekommen (zu 99.99999% ist es nicht Sender: TObject), oder es gibt eine Property "Selected" oder so.