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 Leertaste ändert Itemindex einer Radiogroup (https://www.delphipraxis.net/110179-leertaste-aendert-itemindex-einer-radiogroup.html)

nr9 14. Mär 2008 08:55


Leertaste ändert Itemindex einer Radiogroup
 
Hallo zusammen.

Bei einem meiner Programme tritt folgendes Phänomen auf:

Auf einem Formular gibt es zwei Checkboxen und eine Radiogroup.
Wenn eine der Checkboxen den Fokus hat und mit der Leertaste gecheckt oder entcheckt( :gruebel: ) wird, springt zusätzlich automatisch der Fokus auf die Radiogroup und der Itemindex wird auf 9 gesetzt. Warum das passiert, ist mir unerklärlich. Das Formular behandelt zwar Tastatureingaben, aber dieses Verhalten ist nicht vorgesehen und auch nicht programmiert. Ich bekomme das einfach nicht in den Griff...

Hat von euch veilleicht jemand einen Tipp, woran das liegen könnte?
Bin für jeden Hinwei dankbar.

Sharky 14. Mär 2008 08:57

Re: Leertaste ändert Itemindex einer Radiogroup
 
Hai nr9,

ersteinmal: "Herzlich Willkommen in der Delphi-PRAXiS"

Hast Du irgendeinen Code im OnKeypress/KeyDown usw. stehen?

nr9 14. Mär 2008 09:03

Re: Leertaste ändert Itemindex einer Radiogroup
 
Zitat:

Zitat von Sharky
Hast Du irgendeinen Code im OnKeypress/KeyDown usw. stehen?

Ja, folgendes:

Delphi-Quellcode:
procedure TMainFrm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 Case Key Of
    VK_F5 // [F5]
      : Begin //Neuer Datensatz
          key := 0;
          btnNeueWareClick(Sender);
        End;
    VK_F12 // [F12]
      : Begin //Beenden
          key := 0;
          btnExitClick(Sender);
        End;
  End; //case
end;
Delphi-Quellcode:
procedure TMainFrm.FormKeyPress(Sender: TObject; var Key: Char);
begin
  Case Key Of
    #13 //VK_Return // Enter
      : If (ActiveControl is TWinControl) then
        begin
          if (TWinControl(ActiveControl).Tag = 0) Then // nächstes Eingabefeld
          Begin
            Key := #0;
            SendMessage(Self.Handle, WM_NEXTDLGCTL, 0, 0);
          End
          else
          begin
            Key := #0;
            btnAnzeigenClick(Sender);
          end;
        end;
    #27 //VK_Escape // Escape
      : Begin
          Key := #0;
          FelderLeeren;
          edtVerwendung.SetFocus;
        End;
    #43 //VK_ADD // [+] (nummernblock)
      : Begin //Anzeigen
          key := #0;
          btnAnzeigenClick(Sender);
        End;
  End;//Case
end;

Sharky 14. Mär 2008 09:13

Re: Leertaste ändert Itemindex einer Radiogroup
 
Zitat:

Zitat von nr9
...Ja, folgendes: ...

Hmm... da sehe ich nichts.
Hast Du noch besonderen Code im OnClick der CheckBox?

nr9 14. Mär 2008 09:20

Re: Leertaste ändert Itemindex einer Radiogroup
 
Nein, onClick der Checkboxen ist leer. Es passiert mit allen Checkboxen auf dem Formular. Und sowohl mit TCheckbox als auch mit TJvCheckbox...

Sharky 14. Mär 2008 09:31

Re: Leertaste ändert Itemindex einer Radiogroup
 
Hmmm... dann muss es an etwas besonderem Liegen.
Habe es eben getestet und es funktioniert so wie gewünscht.

Kannst Du mal ein Beispielprojekt anhängen?

nr9 14. Mär 2008 09:55

Re: Leertaste ändert Itemindex einer Radiogroup
 
Habe gerade rausgefunden woran es liegt:
Das Item, das immer automatisch ausgewählt wird heisst XYZ GmbH & Co. KG. Angezeigt wurde immer XYZ GmbH _Co. KG. Es wurde also ein Leerzeichen als Tastenkürzel integpretiert und deswegen markiert.
Allerdings dachte ich, dass diese Kürzel nur aktiv sind, wenn man gleichzeitig die Alt-Taste drückt. Aber das war wohl ein Irrtum...


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