Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi TabOrder einer Komponente lässt sich nicht setzen (https://www.delphipraxis.net/66926-taborder-einer-komponente-laesst-sich-nicht-setzen.html)

Jerry 6. Apr 2006 15:26


TabOrder einer Komponente lässt sich nicht setzen
 
Hallo zusammen

Folgendes Problem:

Ich habe eine GroupBox in einem TabSheet.

Ich ändere von dieser GroupBox den Parent auf ein anderes Tabsheet.
Danach möchte ich den TabOrder dieser Groupbox auf dem neuen TabSheet anpassen, doch der neue Wert für TabOrder
lässt sich nicht setzen.
Die GroupBox behält immer den "alten TabOrder" des "alten TabSheets".
Woran könnte das liegen?

Delphi-Quellcode:
begin
  with gb_Bewilligungen do
  begin
    Parent := tbs_Ware;
    Top := 335;
    // Taborder setzen
    TabOrder := 48;  // hier lässt sich der Taborder nicht setzen ???? TabOrder bleibt immer 1
  end;
  pgc_DetailDaten.Pages[1].TabVisible := False;
 end;
Vielen Dank jetzt schon für Euren Input!
Grüsse vom Bodensee

Hawkeye219 6. Apr 2006 18:58

Re: TabOrder einer Komponente lässt sich nicht setzen
 
Hallo Jerry,

nicht alle sichtbaren Komponenten können den Tastaturfokus erhalten. Wenn also auf dem "neuen" TabSheet nach dem Verschieben nur zwei Komponenten liegen, deren TabOrder gesetzt werden kann, so ist der höchstmögliche Wert für TabOrder 1.

Könnte das eine Erklärung für Dein Problem sein?

Gruß Hawkeye

Jerry 7. Apr 2006 07:00

Re: TabOrder einer Komponente lässt sich nicht setzen
 
Hallo Hawkey219

Leider nein. Diese Komponente ist eine von sehr vielen auf dem Tabsheet. Ich habe es auch in einem kleinen Testprojekt versucht den TabOrder zu setzen. Auch erfolglos. Wenn ich von bestehenden Komponenten den TabOrder setze, das geht problemlos.

Sobald eine Komponente hinzukommt (also Parent geändert wurde von einem anderen Tabsheet) kann der TabOrder nicht gesetzt werden.

Auch im Debbugging Mode, behält die Komponente den TabOrder.

Wenn ich die ganze Maske "durch-Tabe", bekomme ich schon irgend wann mal den Fokus auf die Komponente, aber ich möchte diesen eben bewusst setzen können.

Habt Ihr andrere Ideen?

Danke vielmals!

marabu 7. Apr 2006 07:28

Re: TabOrder einer Komponente lässt sich nicht setzen
 
Guten Morgen Jerry.

Wenn du den TabOrder-Wert nicht größer als 1 setzen kannst, dann versuche ihn mal auf 0 zu setzen. Wenn das funktioniert, dann hast du einen falschen Parent zugewiesen. Grundsätzlich funktioniert das Verschieben und Neupositionieren so wie du es vorhast. Lasse dir nach dem Verschieben mal die Controls im von dir gesetzten neuen Parent (Name, TabOrder) auflisten - das sollte Klarheit bringen.

Grüße vom marabu

Jerry 7. Apr 2006 08:19

Re: TabOrder einer Komponente lässt sich nicht setzen
 
Hallo Marabu

Danke für den Tipp. Du hattest Recht! Ich habe den Parent 1 Stufe zu hoch gesetzt.
Wäre ich jetzt nicht drauf gekommen.

Danke, Problem somit erledischt.

Grüsse von Jerry


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:26 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