Autor Beitrag
Grafix
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 122

Windows 7 Professional
Delphi 2009, PHP, Prolog, Python, Java
BeitragVerfasst: Do 29.04.10 13:55 
Moin,

ich habe mehrere zur Laufzeit erzeugte Panel, angeordnet wie ein Feld X * Y.
Ich möchte jetzt den Wert des Panels neben dem, welches ich angeklickt habe. Die Panel.Tags sind durchnummeriert, die Namen ebenfalls, jedoch nach dem Format "PanelXY".

Ich kann nun herausfinden, welcher Tag das Feld neben (hier nur links) dem angeklickten hat, mit:

ausblenden Delphi-Quelltext
1:
if ((Sender as TPanel).Caption = (Sender as TPanel).Tag - 1then					


Aber wie frage ich jetzt noch den Wert des Panels links neben ab, bzw. vergleiche ihn mit einem bestimmten Wert??
Danke für Eure Mühe,

lg Grafix
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8553
Erhaltene Danke: 479

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Do 29.04.10 14:06 
Ich würde die Panels in einem 2D-Array of TPanel verwalten. Über den durchnummerierten Tag des angeklickten Panels kannst du die X-Y-Koordinate in diesem Array ausrechnen, und dann einfach im Array das Panel links/rechts/drüber/drunter des angeklickten nehmen.

Deine Codezeile wird aber nicht funktionieren - Tag ist Integer und Caption ein String. Das kann man so nicht direkt vergleichen. ;-)

_________________
We are, we were and will not be.
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Sa 01.05.10 19:25 
Kommt drauf an, wenn Du alle Panels normal durchnummerierst, dann kannst Du doch einfach nach dem Panel mit der nächstkleineren Nummer suchen.
Die Nummer bekommst Du dann so in etwa raus:
ausblenden Delphi-Quelltext
1:
2:
panelName:=TPanel(Sender).Name;
nummer:=StrToInt(copy(panelName,6,length(panelName)-6))