Zitat von
Cosamia:
Da passieren dann ganz wilde Dinge.
vergiß nicht, daß auf der Form noch andere Controls liegen, welche ebenfalls in dieser TabOrder drinstecken und wenn nicht alle Zellen mit Panels versehen sind, dann kann das eh nichts werden.
Wie gesagt
Zitat:
0 <= TabOrder < Parant.ControlCount
Zitat:
Delphi-Quellcode:
procedure TWinControl.UpdateTabOrder(Value: TTabOrder);
begin
...
if Value < 0 then Value := 0;
if Value >= Count then Value := Count - 1;
Zitat von
Cosamia:
Gibt es denn eine Möglichkeit das Grid Spaltenweisen zu durchlaufen, und abzufragen ob sich darauf ...
Nein, da diese Panels ja nicht an das StringGrid und schon garnicht an eine Zelle gebunden sind.
Zu könntest die Panels in MyControls sortieren
- Anhand ihrer aufsteigenden Position (Panel.Top * 10000 + Panel.Left)
Und dann den Panels über diese sortierte List von vorne nach hinten eine aufsteigende TabOrder verpassen.
Oder bessernoch du gehst diese Liste dann rückwärts durch und gibst allen Panels nacheinander StringGrid.TabOrder+1 als TabOrder ... dann sind sie alle sortiert und kommen direkt nach dem StringGrid.