Delphi-PRAXiS
Seite 2 von 2     12   

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 Eigene Komponente TCustomControl den Focus erhalten (https://www.delphipraxis.net/198286-eigene-komponente-tcustomcontrol-den-focus-erhalten.html)

EWeiss 21. Okt 2018 09:18

AW: Eigene Komponente TCustomControl den Focus erhalten
 
Zitat:

VK_Left, VK_Right, VK_Top und VK_Down
Wie das halt so ist.

Werden Messagen im eigenen Control NICHT implementiert\Behandelt! Nun dann tun sie auch nichts.
Baust du ein Auto ohne Bremsen dann kannst du es auch nicht anhalten.
Ist doch ganz einfach zu verstehen.

gruss

Hobbycoder 21. Okt 2018 09:32

AW: Eigene Komponente TCustomControl den Focus erhalten
 
Zitat:

Zitat von Schokohase (Beitrag 1416228)
Man könnte ja nachschauen wie das bei anderen Controls funktioniert ... (halt bei denen, wo es so funktioniert)

Versuche ich ja. Bei einigen Problemen hat mir das in der Vergangenheit auch schon weitergeholfen, so dass ich die Fragen gar nicht erst hier stellen musste.
Hierbei ist jedoch nicht ganz so einfach, da manches über Windows-Botschaften passiert. Und somit nicht direkt aus dem Code auslesbar ist. Da ich da nicht unbedingt so viel Erfahrung habe, frage ich hier halt mal.

EWeiss 21. Okt 2018 09:36

AW: Eigene Komponente TCustomControl den Focus erhalten
 
Zitat:

da manches über Windows-Botschaften passiert
Alles!

Behandle..
Delphi-Quellcode:
  WM_KEYFIRST        = $0100;
  {$EXTERNALSYM WM_KEYDOWN}
  WM_KEYDOWN         = $0100;
  {$EXTERNALSYM WM_KEYUP}
  WM_KEYUP           = $0101;
  {$EXTERNALSYM WM_CHAR}
und gut ist.

gruss

Hobbycoder 21. Okt 2018 09:51

AW: Eigene Komponente TCustomControl den Focus erhalten
 
Zitat:

Zitat von EWeiss (Beitrag 1416230)
Zitat:

VK_Left, VK_Right, VK_Top und VK_Down
Wie das halt so ist.

Werden Messagen im eigenen Control NICHT implementiert\Behandelt! Nun dann tun sie auch nichts.
Baust du ein Auto ohne Bremsen dann kannst du es auch nicht anhalten.
Ist doch ganz einfach zu verstehen.

gruss

Ist mir bekannt.

Nur stellt sich mir die Frage, welche ich abfangen muss, damit ich die o.g. Tasten an meinem Control ankommen. WndProc, WMChar, WMKeyDown kommen nur an, wenn ich irgendwelche anderen Tasten drücke. Obwohl form.ActiveControl auf meinem Control steht.

EWeiss 21. Okt 2018 10:13

AW: Eigene Komponente TCustomControl den Focus erhalten
 
Zitat:

Nur stellt sich mir die Frage, welche ich abfangen muss, damit ich die o.g. Tasten an meinem Control ankommen.
Nicht so einfach zu beantworten, sorry kenne dein Control nicht.

Ein Möglichkeit wäre dein Control bzw. das Panel zu Subclassen.
Dein Control muss WM_KEYDOWN und WM_KEYUP an alle Child Windows weiterreichen.


gruss

Hobbycoder 21. Okt 2018 10:22

AW: Eigene Komponente TCustomControl den Focus erhalten
 
Habe die Lösung gefunden.

Delphi-Quellcode:
procedure TTPPlan2.WMGetDlgCode(var Message: TWMGetDlgCode);
begin
  inherited;
  Message.Result:=Message.Result or DLGC_WANTARROWS;
end;
Und schon kommen auch VK_LEFT, VK_RIGHT, VK_DOWN und VK_UP bei WMKeyDown an ;-)

Da wäre ich so im Leben nicht drauf gekommen. Aber eure Anregungen haben mir bei der Suche schon wesentlich weiter geholfen. Danke euch dafür.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:59 Uhr.
Seite 2 von 2     12   

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-2025 by Thomas Breitkreuz