Avatar billede eht Nybegynder
10. oktober 2003 - 20:38 Der er 4 kommentarer og
1 løsning

Hvordan kan man opfange tastetryk

Jeg har et videokomponent (TActivemovie) som jeg gerne vil bygge lidt videre på.
Jeg har forløbig indbygget OnMouseLeave og OnMouseEnter ved hjælp af nedenstående unit der opretter et nyt komponent.

TActivemovie har indbygget at man kan styre afspilningen ved hjælp af tastaturet.
Mit problem er at disse tastaturfunktioner ( som ikke umiddelbart kan slås fra) blokerer for for mine egne genvejstaster.
Hvordan kan man opfange tastetryk og'override! de indbyggede tastaturfunktioner. Noget i stil med de OnMouseLeave og OnMouseEnter jeg har tilføjet.


Erik

******************************************************

unit NewActiveMovie;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, AMovie;

type
  TEnterEvent = procedure(Sender: TObject) of object;
  TLeaveEvent = procedure(Sender: TObject) of object;


  TVideo2 = class(TActiveMovie)
  private
    { Private declarations }
    FOnEnter: TEnterEvent;
    FOnExit: TLeaveEvent;
    procedure CMMouseEnter(var msg: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var msg: TMessage); message CM_MOUSELEAVE;

  protected
    { Protected declarations }
  public
    { Public declarations }
  published
    { Published declarations }
    property OnMouseEnter: TEnterEvent read FOnEnter write FOnEnter;
    property OnMouseLeave: TLeaveEvent read FOnExit write FOnExit;

  end;

procedure Register;

implementation

procedure TVideo2.CMMouseEnter(var msg: TMessage);
begin
  inherited;
  if Assigned(FOnEnter) then FOnEnter(Self);
end;

procedure TVideo2.CMMouseLeave(var msg: TMessage);
begin
  inherited;
  if Assigned(FOnExit) then FOnExit(self);
end;

procedure Register;
begin
  RegisterComponents('Samples', [TMyVideo]);
end;

end.
Avatar billede klasker Nybegynder
11. oktober 2003 - 11:43 #1
procedure WMKeyDown(var Message: TWMKeyDown); message WM_KEYDOWN;
procedure WMKeyUp(var Message: TWMKeyUp); message WM_KEYUP;
Avatar billede klasker Nybegynder
11. oktober 2003 - 11:44 #2
Jeg ved ikke hvilke der vil virke i dit tilfælde da jeg ikke kender TActiveMovie

procedure CNKeyDown(var Message: TWMKeyDown); message CN_KEYDOWN;
procedure CNKeyUp(var Message: TWMKeyUp); message CN_KEYUP;
Avatar billede eht Nybegynder
11. oktober 2003 - 13:40 #3
Forløbig tak for kommentarene.
Jeg er lige på vej på ferie så det varer en uges tid før jeg afprøver det.

Erik
Avatar billede stefanfuglsang Juniormester
11. oktober 2003 - 14:19 #4
Måske det samme i Delphi - i C++Builder hedder det:
Set the KeyPreview property of a form to true.
You can now handle keyboard events at the form level, rather than having to write separate event handlers for every component in the form that might have focus when the keyboard event occurs. The form can receive any keystrokes that the focused component can receive. Also, by using KeyPreview, you can then code unique keyboard event handlers for specific components.
Avatar billede eht Nybegynder
28. oktober 2011 - 12:32 #5
Detter er en gammel tråd der ikke længere er relevant.
Jeg lukker og giver point den eneste der har afgivet et svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester