Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Zachytenie správy Windows o horizontálnom posuve koliečka na myši

No dobre, takže: Spomenul som si, že zdrojáky ku knihe, ktoré boli na CD som si skopíroval do počítača a pomocou fulltextu som nakoniec našiel zdroják, ktorý som chcel, či mi niekto nenapíše. Jedná sa o zachytenie všetkých správ a ich počítanie. No takže zistil som, že ak okno má focus, tak správu dostane, ak nemá focus, ale je nad ním kurzor myši, tak tiež. Ak nie je nad ním korzor, tak správu nedostane. Mám teda zachytené správy, ale zistil som, že správa nie je objekt, ale záznam a teda neviem zistiť jej názov. Tu je výpis programu: Vie mi niekto poradiť, ako zistím názov správy?

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    ListBox1: TListBox;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    PocetZprav: Integer;            // atribut uchovavajici dosavadni pocet doslych zprav
    // procedura AppOnMessage bude spustena vzdy po doruceni jakekoliv zpravy
    procedure AppOnMessage(var Msg: TMsg; var Handled: Boolean);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Caption := 'Počet zpráv: 0';
  Button1.Caption := '&Do seznamu';
  Edit1.Text := '';
  Application.OnMessage := AppOnMessage;    // svazeme udalost OnMessage a metodu AppOnMessage
  PocetZprav := 0;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // pokud neni editacni pole prazdne, pridame txt do seznamu
  if Edit1.Text <> '' then ListBox1.Items.Add(Edit1.Text);
end;

procedure TForm1.AppOnMessage(var Msg: TMsg; var Handled: Boolean);
begin
  Inc(PocetZprav);                // zvysime citac zprav
  // upravime titulek formulare
  Caption := 'Počet zpráv: ' + IntToStr(PocetZprav);
end;

end.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny