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 Tabulatorreihenfolge mit einem Panel (https://www.delphipraxis.net/184310-tabulatorreihenfolge-mit-einem-panel.html)

handson 17. Mär 2015 09:35

Tabulatorreihenfolge mit einem Panel
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo!

Ich habe mal eine Frage zur Tabulatorreihenfolge, wenn man ein Panel mit benutzt. Zur Übersicht habe ich mal einen Screenshot beigefügt.

Ich möchte gerne die folgende Reihenfolge Edit1 - Edit3 - Edit5 - Edit2 - Edit4 - Edit6.
Er muss also zweimal ins Panel rein und rausspringen. Bis jetzt springt er erst ab dem Feld Edit4 rein. Ich weiss, dass der Panel als eigene Gruppe gesehen wird. Aber kann man das nicht irgendwie übersteuern?

Danke schon mal im Voraus!

Stephan

himitsu 17. Mär 2015 09:43

AW: Tabulatorreihenfolge mit einem Panel
 
Das Kontextmenü vom Panel und dort die Taborder :zwinker:

handson 17. Mär 2015 09:47

AW: Tabulatorreihenfolge mit einem Panel
 
Das ist erst interessant, wenn man im Panel drin ist. Das geht z.Zt. nach dem Verlassen von Feld Edit4. Er soll aber von Feld Edit3 in Edi5, von Edit5 nach Edit2 und danach von Edit4 nach Edit6.
Es soll also eine Taborder für alle Felder inkl. Panel geben, nicht getrennt. Wenn es denn möglich ist.

himitsu 17. Mär 2015 09:55

AW: Tabulatorreihenfolge mit einem Panel
 
Die Tabreihenfolge wird immer nur je Parent-Control verwaltet.
Also jeweils Form, Panels und GroupBoxen einzeln.

Wenn von außerhalb in ein Panel gesprungen wird, dann zum 1. TabIndex im Panel.


Oder du regelst selber im OnExit den Focus.
Delphi-Referenz durchsuchenSetFocus

handson 17. Mär 2015 10:01

AW: Tabulatorreihenfolge mit einem Panel
 
Ich denke, da bleibt wir wirklich nichts anderes übrig, als das per Hand zu machen. Schade, ich dachte, man kann das irgendwie übersteuern...

Darlo 17. Mär 2015 10:10

AW: Tabulatorreihenfolge mit einem Panel
 
Du kannst die Edits die auf dem Panel liegen auf das Form legen, und das Panel mit Rechtsklick -> Anordnen -> "nach hinten setzen" :duck:

himitsu 17. Mär 2015 10:14

AW: Tabulatorreihenfolge mit einem Panel
 
Ist das Standardverhalten von Windows.
Abweichendes muß man selber implementieren.

Sir Rufo 17. Mär 2015 10:27

AW: Tabulatorreihenfolge mit einem Panel
 
Es stellt sich die Frage, warum liegen die Edit-Felder in dem Panel?

Nur wegen dem Kasten darum?

himitsu 17. Mär 2015 10:28

AW: Tabulatorreihenfolge mit einem Panel
 
Zitat:

Zitat von Sir Rufo (Beitrag 1293749)
Nur wegen dem Kasten darum?

Delphi-Referenz durchsuchenTBevel

handson 17. Mär 2015 11:14

AW: Tabulatorreihenfolge mit einem Panel
 
Damit kann ich die Gruppe von Feldern mit einem Schritt aktivieren oder deaktivieren. :-D

himitsu 17. Mär 2015 11:43

AW: Tabulatorreihenfolge mit einem Panel
 
Disable vom Parent/Panel entspricht aber optisch nicht dem Disabled von den Edits.

Du kannst Gruppen im Tag markieren oder du baust dir ein Gruppe-Property in deine Edit-Ableitungen. bzw. eine Gruppen-Handler-Komponente.

Helmi 17. Mär 2015 18:37

AW: Tabulatorreihenfolge mit einem Panel
 
Hallo,

kurze Fragen zwischendurch: Wie kommt man an Dialog "Tabulatorreihenfolge bearbeiten",
der im Bild im ersten Thread zu sehen ist.

Dalai 17. Mär 2015 18:46

AW: Tabulatorreihenfolge mit einem Panel
 
@Helmi: Zur Designzeit Rechtsklick auf das Objekt (Formular, Panel, whatever) > Tabulatorreihenfolge.

MfG Dalai

himitsu 17. Mär 2015 18:50

AW: Tabulatorreihenfolge mit einem Panel
 
Zitat:

Zitat von Helmi (Beitrag 1293811)
kurze Fragen zwischendurch: Wie kommt man an Dialog "Tabulatorreihenfolge bearbeiten",
der im Bild im ersten Thread zu sehen ist.

Zitat:

Zitat von himitsu (Beitrag 1293738)
Das Kontextmenü vom Panel und dort die Taborder :zwinker:

Kontextmenü des Parents (Form, Panel usw.) im Form-Designer und dort "Tabulatorreihenfolge...".

Über cnPack oder GExperts kann man sich eventuell auch einen anderen Editor einfangen, bzw. weitere Funktionen für die Tabs. (z.B. kleine Hints/Zahlen direkt im FormDesigner, an jeder Komponente)

Helmi 17. Mär 2015 18:55

AW: Tabulatorreihenfolge mit einem Panel
 
Zitat:

Zitat von Dalai (Beitrag 1293812)
@Helmi: Zur Designzeit Rechtsklick auf das Objekt (Formular, Panel, whatever) > Tabulatorreihenfolge.

MfG Dalai

vielen Dank, Dalai (Lama?)!

Dalai 17. Mär 2015 19:04

AW: Tabulatorreihenfolge mit einem Panel
 
[OT]

Zitat:

Zitat von Helmi (Beitrag 1293814)
[...] Dalai (Lama?)!

Nope, ich bin der ohne Lama. Letzteres lasse ich dem echten :lol:.

[/OT]

hathor 17. Mär 2015 19:26

AW: Tabulatorreihenfolge mit einem Panel
 
Zitat:

Zitat von handson (Beitrag 1293735)
Ich möchte gerne die folgende Reihenfolge Edit1 - Edit3 - Edit5 - Edit2 - Edit4 - Edit6.
Er muss also zweimal ins Panel rein und rausspringen. Bis jetzt springt er erst ab dem Feld Edit4 rein. Ich weiss, dass der Panel als eigene Gruppe gesehen wird. Aber kann man das nicht irgendwie übersteuern?

Danke schon mal im Voraus!

Stephan

Das geht so:
Da die TAB-Taste reserviert ist, musst Du eine andere definieren, z.B. ESC #27.

Delphi-Quellcode:
//  KeyPreview:= True;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key= #27 then Form1.Tag:= Form1.Tag +1;
if Form1.Tag>6 then Form1.Tag:=1;

case Form1.Tag of
1 : Edit1.SetFocus;
2 : Edit3.SetFocus;
3 : Edit5.SetFocus;
4 : Edit2.SetFocus;
5 : Edit4.SetFocus;
6 : Edit6.SetFocus;
end;

end;

Dejan Vu 18. Mär 2015 03:51

AW: Tabulatorreihenfolge mit einem Panel
 
Wenn das Panel den Fokus bekommt, soll es den einfach an Edit5 weitergeben.

War da nicht mal was mit 'TabStop'?

Jumpy 18. Mär 2015 07:58

AW: Tabulatorreihenfolge mit einem Panel
 
Zitat:

Zitat von handson (Beitrag 1293753)
Damit kann ich die Gruppe von Feldern mit einem Schritt aktivieren oder deaktivieren. :-D

Das ist jetzt aber kein wirkicher Grund, oder? Da kann man sich doch ein oder zwei Funktionen schreiben die das machen. Über die Tag-Eigentschaft z.B. ließen sich die TEdits Gruppen zuordnen, wenn man die Gruppierung nicht im Quellcode haben möchte.

Weil bevor ich mir jetzt einen abbreche mit OnExit, OnKeydown oder was weiß ich in jedem Edit auf Return und Tabulator-Taste zu reagieren...

himitsu 18. Mär 2015 08:14

AW: Tabulatorreihenfolge mit einem Panel
 
Zitat:

Wenn das Panel den Fokus bekommt, soll es den einfach an Edit5 weitergeben.
Wie bereits gesagt wurde ... Edit5 als erstes Control innerhalb des Panels, hat die selbe Wirkung.

Zitat:

Zitat von Jumpy (Beitrag 1293855)
Das ist jetzt aber kein wirkicher Grund, oder? Da kann man sich doch ein oder zwei Funktionen schreiben die das machen. Über die Tag-Eigentschaft z.B. ließen sich die TEdits Gruppen zuordnen, wenn man die Gruppierung nicht im Quellcode haben möchte.

Der ManifestCreator wurde in den ersten Versionen komplett ausschließlich über das Tag gesteuert. (wer wann aktiv ist und wer wie/wo gespeichert/geladen wird)
Ist zwar eine witzige Steuerungsart, wo man dahinter dann kaum Code benötigt und alles nur noch über OI/DFM steuert,
aber letztendlich wäre es dennoch besser, sich hierfür ein paar "sprechende" Property in die Komponenten einzufügen. (drum ist der Code wieder rausgeflogen :stupid:)

handson 19. Mär 2015 10:00

AW: Tabulatorreihenfolge mit einem Panel
 
Nach einem Tag auf der CeBit bin auch wieder da... 8-)

Das mit dem Tag-Property ist, glaube ich, eine gute Idee. Da bin ich selbst noch nicht drauf gekommen. Ich werde das mal gleich ausprobieren. :)


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