Einzelnen Beitrag anzeigen

Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#12

Re: Problem mit Object Inspector

  Alt 29. Aug 2008, 22:56
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.
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat