![]() |
JvDesignPanel ausgewähltes Objekt
Hallo,
bevor ich meine Frage stelle, habt bitte ein bisschen Nachsehen mit mir. Ich bin neu hier und falls ich irgendwas vergessen sollte weißt mich bitte darauf hin :) Jetzt zu meiner Frage. Ich habe mich seit mehreren Tagen mit dem JvDesignPanel beschäftigt. Die Objekte werden einwandfrei gezeichnet und ich kann sie mit der Maus bearbeiten (Position und Größe). Nun möchte ich einen kleinen Objektinspektor schreiben. Leider kann ich momentan nur auf das Nullte Element aus dem Array zugreifen. Was daran liegt das ich auch nach langer Suche im Internet kein Ergebnis finden konnte, wie man ausließt, welches Objekt ausgewählt ist. Hier ein ausschnitt aus meinem Code:
Code:
Statt der 0 sollte dann auf das ausgewählte (angeklickte) Element zugegriffen werden.
procedure TMainForm.JvDesignPanelSelectionChange(Sender: TObject);
begin if Length(JvDesignPanel.Surface.Selected)>0 then begin seTop.Value:= JvDesignPanel.Surface.Selection[0].Top; seLeft.Value:= JvDesignPanel.Surface.Selection[0].Left; seHeigth.Value:= JvDesignPanel.Surface.Selection[0].Height; seWidth.Value:= JvDesignPanel.Surface.Selection[0].Width; end; end; Ich weiß man könnte auch den JvInspector nehmen. Leider sind da zu Viele Einstellmöglichkeiten. Und ich konnte nicht herausfinden ob, und wenn ja wie man diese Filtern kann. Ich hoffe ich konnte meine Frage verständlich formulieren und dass ich nicht zu viel geschrieben habe :D Danke schonmal im Vorraus. MfG Marcel. (MrDelock) PS: Was bedeutet bei den Einstellungen zum Posten der Frage "Dieses Thema als offene Frage markieren"? |
AW: JvDesignPanel ausgewähltes Objekt
Leider habe ich keine Antwort erhalten. Allerdings habe ich selber eine Lösung gefunden. Für alle die irgendwann mal das gleiche Problem haben sollten:
Code:
Das bedeutet um den Index des Ausgewählten Objektes herauszufinden verwenden man:
procedure TMainForm.JvDesignPanelSelectionChange(Sender: TObject);
begin if Length(JvDesignPanel.Surface.Selected)>0 then begin seTop.Value:= JvDesignPanel.Surface.Selection[JvDesignPanel.Surface.ComponentIndex].Top; seLeft.Value:= JvDesignPanel.Surface.Selection[JvDesignPanel.Surface.ComponentIndex].Left; seHeigth.Value:= JvDesignPanel.Surface.Selection[JvDesignPanel.Surface.ComponentIndex].Height; seWidth.Value:= JvDesignPanel.Surface.Selection[JvDesignPanel.Surface.ComponentIndex].Width; end; end;
Code:
MfG
JvDesignPanel.Surface.ComponentIndex
Marcel. (MrDelock) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:04 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