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 Perform(WM_NEXTDLGCTL in Frames (https://www.delphipraxis.net/190737-perform-wm_nextdlgctl-frames.html)

haentschman 1. Nov 2016 18:14

Perform(WM_NEXTDLGCTL in Frames
 
Moin...:P

ich bräuchte mal eure Hilfe... :wink:

Gegeben:
1. Die GUI ist organisiert in Frames welche im Tabs liegen.
2. Diverse Frames werden in einem Formcontainer dargestellt. (Modal)

Nun wollte ich das "mit ENTER zum nächsten Feld" in den nackigen Frames implementieren.
Delphi-Quellcode:
Perform(WM_NEXTDLGCTL, 0, 0);
Da tut sich nix weil im Frame der Handler der Message nicht implementiert ist...:?

Dann habe ich die Message implementiert. (geklaut aus CustomForm) 8-)
Delphi-Quellcode:
procedure TfrBase.SetNextControl(var Message: TWMNextDlgCtl);
begin
  if Message.Handle then
  begin
    Windows.SetFocus(Message.CtlFocus);
  end
  else
  begin
    SelectNext(???, not BOOL(Message.CtlFocus), True); // wie komme an das Active Control?
  end;
end;
Macht das überhaupt einen Sinn das selbst zu implementieren oder statt dessen eine Form als Container zu benutzen? Geht das vieleicht einfacher? :wink:

Danke...:P

uligerhardt 2. Nov 2016 07:41

AW: Perform(WM_NEXTDLGCTL in Frames
 
Kannst du dir nicht den Umweg über WM_NEXTDLGCTL sparen und direkt SelectNext aufrufen?

haentschman 2. Nov 2016 08:05

AW: Perform(WM_NEXTDLGCTL in Frames
 
Moin...:P

...und dafür brauche ich das ActiveControl welches in TForm implementiert ist. :wink:

Mit den ganzen Messages komme ich nicht ganz zurecht. Was brauche ich für mein Vorhaben? 1., 2. usw. 8-)


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