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 Lästiges "Ding" bei exit aus ComboBox (https://www.delphipraxis.net/187035-laestiges-ding-bei-exit-aus-combobox.html)

Captnemo 22. Okt 2015 11:00

Lästiges "Ding" bei exit aus ComboBox
 
Hi,

Titel ist ein bisschen blöd. Wenn einem ein Besserer einfällt ändere ich ihn gerne.

Zum Problem:

Ich möchte eine Combobox mit Tab verlassen und in das nächste Control springen. Klar, das geht. Aber wenn die Combobox aufgekappt ist, geht das so erst mal nicht (k.A. warum).
Okay, dieser Workaround funktioniert aber für mich:
Delphi-Quellcode:
procedure Tfrm_ERNEu.cbb_lieferantKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key=VK_TAB then
    Self.Perform(WM_NEXTDLGCTL, 0, 0);
end;
Problem gelöst.

Allerdings wird trotzdem dieser "Ding"-Sound ausgelöst, denn man immer hört, wenn man z.B. eine ungültige Eingabe tätigt, oder ein Fehler ausgelöst wird.
Wie kann ich das abschalten? Ich will das natürlich nicht generell abschalten, sondern halt nur verhindern, dass das bei dem Control passiert.

Oder anders: Wie kann ich während DropDown der Combobox das Control sauber mit Tab verlassen (ohne Sound).

stahli 22. Okt 2015 11:24

AW: Lästiges "Ding" bei exit aus ComboBox
 
Notfalls Key := #0 setzen.
Dann verarbeitet Windows das VK_Tab nicht mehr nachträglich.

Ob es noch generelle bessere Lösungen gibt, kann ich nicht sagen.

Captnemo 22. Okt 2015 11:31

AW: Lästiges "Ding" bei exit aus ComboBox
 
Danke ;)

Ich OnKeyDown ging das natürlich nicht.
Aber im OnKeyPress ist das die Lösung (Hab ich natürlich schon tausendmal gelesen, aber glaub nicht, dass ich deswegen selber drauf komme)

Papaschlumpf73 22. Okt 2015 11:38

AW: Lästiges "Ding" bei exit aus ComboBox
 
Delphi-Quellcode:
if ComboBox.ListVisible then ComboBox.CloseUp(true)
Ist auch eine Möglichkeit; für mich auch leichter zu lesen als PERFORM irdendwas...


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