Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как узнать что TListView получил или потерял фокус


Автор: Ak47black 11.10.2007, 15:48
Здравствуйте.
Хочу узнать как отловить момент получения и потери фокуса у TListView.
Какой тут лучше способ?  smile 
Через главную процедуру (WndProc) или чтото другое есть?
Подскажите пожалуйста ктонибудь.

Автор: VICTAR 11.10.2007, 16:05
OnEnter OnExit?

Автор: Rennigth 11.10.2007, 16:08
Ak47black, незнаю, мож стандартные эвенты есть, непомню. Но можно так:
Код

unit Unit16;

interface

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

type
  TForm16 = class(TForm)
    ListView1: TListView;
    Edit1: TEdit;
  private
    FWndProc: TWndMethod;
  protected
    procedure LVWndMethod(var VMessage: TMessage);
  public
    constructor Create(AOwner: TComponent); override;
  end;

var
  Form16: TForm16;

implementation

{$R *.dfm}

{ TForm16 }

constructor TForm16.Create(AOwner: TComponent);
begin
  inherited;
  FWndProc := ListView1.WindowProc;
  ListView1.WindowProc := LVWndMethod;

end;

procedure TForm16.LVWndMethod(var VMessage: TMessage);
begin
  if VMessage.Msg = WM_KILLFOCUS then
    Caption  := 'ListView is not focused'
  else
    if VMessage.Msg = WM_SETFOCUS then
      Caption  := 'ListView is focused';

  if Assigned(FWndProc) then
    FWndProc(VMessage);
end;


Автор: Ak47black 11.10.2007, 17:03
VICTAR, Ага вот это имеено я и хотел узнать, спс +.
Rennigth, можно и так, только тут больше кода. 
Спасибо все кто участвовал.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)