Toon posts:

[Delphi] Key events bij een MDIForm en MDIChild's

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een MDIForm met de property KeyPreview op True.
In dat MDIForm heb ik een aantal MDIChild's die ook de property KeyPreview op True hebben staan.

Nu wil ik steeds als er op de Numlock, Capslock gedrukt wordt dat dat gewijzigd wordt in mijn statusbar in de applicatie.

Ik heb dus de code die de status van de toetsen controleert in de OnKeyDown event staan van het MDIForm. Maar dat werkt niet.

Maar ik wil het niet in ieder MDIChild gaan zetten.


Wat is de oplossing?

  • Delphi32
  • Registratie: Juli 2001
  • Laatst online: 31-08 21:58

Delphi32

Heading for the gates of Eden

MDI Children het OnKey event aan de parent laten doorgeven? Dan hebben je child forms weliswaar (beperkte) kennis nodig van de parent, maar kan je de afhandeling van de interface logica centraal houden.

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Zou ik zo niet doen.

Ik zou Application.OnIdle (TApplicationEvents component of code) event gebruiken om via deze code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.MyIdleHandler(Sender: TObject; var Done: Boolean);
var
  Ks: TKeyBoardState;
begin
  GetKeyBoardState(Ks);
  if (Ks[VK_CAPITAL] and 1) = 1 then
    { caps lock engaged }
  else
    { caps lock not engaged };
    
  if (Ks[VK_NUMLOCK] and 1) = 1 then
    { NumLock engaged }
  else
    { NumLock not engaged };
  if (Ks[VK_SCROLLOCK] and 1) = 1 then
    { ScrollLock engaged }
  else
    { ScrollLock not engaged };
end;

de status bar te updaten...

We adore chaos because we like to restore order - M.C. Escher


Verwijderd

Topicstarter
Hoe bedoel je precies?

Dus nadat de code behandeld is van de OnKeyDown van de MDIChild's moet ik hem laten wijzen naar de OnKeyDown van het main form?

Maar dan moet ik dus toch alle MDI child's aanpassen?

Verwijderd

Topicstarter
Op dinsdag 16 juli 2002 16:11 schreef LordLarry het volgende:
Ik zou Application.OnIdle (TApplicationEvents component of code) event gebruiken
Bedankt, werkt goed.