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/)
-   -   Focus Setzten zwischen Edit und Checkbox (https://www.delphipraxis.net/90075-focus-setzten-zwischen-edit-und-checkbox.html)

ColdFire 11. Apr 2007 10:34


Focus Setzten zwischen Edit und Checkbox
 
Hy Leute!

Solch ein Problem hatte ich noch nie.
Habe ein Formular worin ich 2 Groupboxen habe in der ersten groupbox befindet sich ein editfeld und in der 2ten groupbox 2 checkboxen.

Nun zum Problem:

Ich will eigentlich nur den focus wechseln können bzw die tabfolge.
Editfeld --> Enter --> focus auf 1te Checkbox --> vk_up --> editfeld focus.

Warum funktioniert der VK_Up key nicht ?
Gibts da eine ander Lösung ?

mfg CF

scrat1979 11. Apr 2007 11:00

Re: Focus Setzten zwischen Edit und Checkbox
 
Hallo!!!

1. Die Tabulatorreihenfolge kann man in der IDE ich glaube im Menüpunkt BEARBEITEN einstellen

2. Um einer Komponente den Focus zu geben kann man den Befehl komponentexy.setfocus nehmen. Vielleicht hilft Dir das ja weiter.

Ich habe hier mal 2 Editfelder erzeugt und beim Drücken der Pfeil-nach-oben-Taste erhält das nächste Edit-Feld (edit2) den Fokus - bei mir funktioniert es so:

Delphi-Quellcode:
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  IF Key = VK_UP Then edit2.SetFocus;
end;
Grüsse,

SCRaT

ColdFire 11. Apr 2007 11:08

Re: Focus Setzten zwischen Edit und Checkbox
 
Tabreihenfolgen sind korrekt mit tab gehts ja
nur möchte ich mit den Pfeiltasten das auch handhaben.

Delphi-Quellcode:
  procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
                                 Shift: TShiftState);
    begin
      if key = vk_Return then
        CheckBox1.SetFocus;
    end;

  procedure TForm1.CheckBox1KeyDown(Sender: TObject; var Key: Word;
                                     Shift: TShiftState);
    begin
      if key = vk_up then
        Edit1.SetFocus;
    end;
so gehts aber nicht !

scrat1979 11. Apr 2007 11:12

Re: Focus Setzten zwischen Edit und Checkbox
 
Habe dir oben nochmal einen code eingefügt.

Also so funktioniert es bei mir einwandfrei :gruebel:
Delphi-Quellcode:
procedure TForm1.CheckBox1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  IF Key = VK_UP Then Edit2.SetFocus;
end;

BTW, im OnKeyDown-Ereignis geht es bei mir auch...
Ebenso funktioniert bei mir "if key = vk_return" im Edit-Feld und zwar nach genau DEINEM Code, merkwürdig!?! :wall:



SCRaT

ColdFire 11. Apr 2007 11:23

Re: Focus Setzten zwischen Edit und Checkbox
 
Liste der Anhänge anzeigen (Anzahl: 1)
hast dus auch in 2 groupboxen ? pro element eine groupbox ?!

Kleines BSP @ Anhang wo vk up nicht geht

BTW: keyUp ist nicht da was ich will KeyDOWN is es :)

scrat1979 11. Apr 2007 11:26

Re: Focus Setzten zwischen Edit und Checkbox
 
Ja, habe ich. Funktioniert einwandfrei. :gruebel:

ColdFire 11. Apr 2007 11:29

Re: Focus Setzten zwischen Edit und Checkbox
 
Aber nicht mit KEY DOWN !

ColdFire 12. Apr 2007 08:40

Re: Focus Setzten zwischen Edit und Checkbox
 
Push ^^

mkinzler 12. Apr 2007 08:48

Re: Focus Setzten zwischen Edit und Checkbox
 
Oder sorge in den Komponenten, die in der Tabreihenfolge danach kommen dafür, daß die richtigen den Fokus erhalten.

ColdFire 12. Apr 2007 09:29

Re: Focus Setzten zwischen Edit und Checkbox
 
Die Tabreihenfolge stimmt siehe Beispielprogramm!

marabu 12. Apr 2007 10:38

Re: Focus Setzten zwischen Edit und Checkbox
 
Hallo,

ich fürchte du hast eine falsche Erwartungshaltung. Mit den Cursor-Tasten wechselst du den Fokus nur innerhalb desselben Parent - im Gegensatz zur Tab-Taste. Auch wenn du das Verhalten mit eigenem Code ändern könntest, solltest du das nicht tun, da ein kundiger Benutzer deines Programmes es so erwartet. Eine Alternative für dich könnte vielleicht der Einsatz von TBevel anstelle TGroupBox sein.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 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 by Thomas Breitkreuz