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 TTabOrder (https://www.delphipraxis.net/31592-ttaborder.html)

MichaelC 11. Okt 2004 14:53


TTabOrder
 
Hallo zusammen,

folgendes Problem:

Meine Anwendung wird durch unterschiedliche Panels aufgeteilt, es existiert kein Formular im Hintergrund sondern diese Panels werden zur Laufzeit auf einem sogenannten "Grundpanel" erzeugt da die Anwendung aus verschiedenen Modulen besteht und diese ausgewählt werden können.

Der Benutzer soll nun durch drücken der TAB Taste zu den entsprechend gültigen Editfelder springen die sich jedoch immer auf den verschiedenen Panels befinden. Wie kann ich die Reihenfolge der Tabulatorliste entsprechend verändern :wall: ?

Vielen Dank bereits jetzt

Gruß

Michael

Stevie 11. Okt 2004 15:25

Re: TTabOrder
 
Die Eigenschaft TabOrder gibt die Position in der Liste an, allerdings werden erst alle Controls auf dem einen Panel abgehandelt, und dann wird das nächste Panel angesteuert, Beispiel:

2 Panels mit je 2 Edits --> Reihenfolge:

Panel1.Edit1
Panel1.Edit2
Panel2.Edit1
Panel2.Edit2

Um jetzt von Panel1.Edit1 nach Panel2.Edit2 zu springen, müsstest du Panel1.Edit1.TabOrder auf Panel1.ControlCount und Panel1.Edit2.TabOrder auf 0 setzen, was ja ne ziemlich wirre Sache wäre.

Du kannst aber auch durch setzen der Eigenschaft TabStop die Ansteuerung von Controls verhindern. In diesem Beispiel müsstest du dann Panel1.Edit2.TabStop und Panel2.Edit1.TabStop auf False setzen, so dass von Panel1.Edit1 direkt zu Panel2.Edit2 gesprungen wird.

MichaelC 12. Okt 2004 06:31

Re: TTabOrder
 
Vielen Dank für die schnelle Antwort. Um die entsprechenden Controls zu deaktivieren muß ich aber feststellen ob in dem letzten Feld die TAB gedrückt wurde, dieses Event bekomme ich jedoch leider nur in Key_up zurück und dann ist es schon zu spät. Hast Du eine weitere oder andere Lösung?

Danke Michael

Stevie 12. Okt 2004 06:49

Re: TTabOrder
 
Zitat:

Zitat von MichaelC
Der Benutzer soll nun durch drücken der TAB Taste zu den entsprechend gültigen Editfelder springen [...]

Wo stellst du denn fest, welche Felder gültig sind?

MichaelC 12. Okt 2004 07:38

Re: TTabOrder
 
Danke nochmals für die Hilfestellung, ich habe das Problem anders lösen können:

Ich frage das onExit Event des letzten Feldes ab und setze in diesem Event den Focus auf das nächst gültige Element. Ist zwar nicht unbedingt die sauberste Lösung aber es funzt.

Gruß

Michael :cheers:

Stevie 12. Okt 2004 07:48

Re: TTabOrder
 
Zitat:

Zitat von MichaelC
Ist zwar nicht unbedingt die sauberste Lösung aber es funzt.

:shock: Au weia, ich hoffe, das funktioniert... Denn erst nach dem Exit wird der Fokus (durch die Tabtaste) auf ein anderes Control gesetzt, und genau dazwischen setzt du den Fokus :|


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