Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi JvDesignPanel ausgewähltes Objekt (https://www.delphipraxis.net/190458-jvdesignpanel-ausgewaehltes-objekt.html)

MrDelock123 6. Okt 2016 07:45

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:
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;
Statt der 0 sollte dann auf das ausgewählte (angeklickte) Element zugegriffen werden.

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"?

MrDelock123 7. Okt 2016 08:41

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:
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;
Das bedeutet um den Index des Ausgewählten Objektes herauszufinden verwenden man:
Code:
JvDesignPanel.Surface.ComponentIndex
MfG
Marcel.
(MrDelock)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz