Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обработка события входа курсора мыши на компонент и выхода!


Витёк ©   (2005-08-16 01:12:00) 

Помоги пожалуйста, как мне например, сделать так: когда я навожу курсор мыши на TImage, в TImage загружалась, например "C:\1. bmp", а когда я вывожу курсор мыши из TImage, в ТImage загружалась "C:\2.bmp"! Только не ONMouseMove!


Наиль   (2005-08-16 02:19:00) [1]

Второй пример не сложнее:
type
 TForm1 = class(TForm)
   Image1: TImage;
   Timer1: TTimer;
   procedure Timer1Timer(Sender: TObject);
 end;
var
 Form1: TForm1;
 a:byte=2;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
Var
cnt:TControl;
s:string;
begin
cnt:=ControlAtPos(ScreenToClient(Mouse.CursorPos),true);
s:='';
if cnt<>nil then s:=cnt.Name;
if (s<>'Image1') and (a=2) then Exit;
if (s='Image1') and (a=1) then Exit;
a:=3-a;
if a=1
 then s:='1.bmp'
 else s:='2.bmp';
Image1.Picture.LoadFromFile(s);
end;


Форма:
object Form1: TForm1
 Left = 519
 Top = 240
 Width = 220
 Height = 250
 Caption = 'Form1'
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = 'MS Sans Serif'
 Font.Style = []
 OldCreateOrder = False
 PixelsPerInch = 96
 TextHeight = 13
 object Image1: TImage
   Left = 48
   Top = 64
   Width = 121
   Height = 97
 end
 object Timer1: TTimer
   Interval = 100
   OnTimer = Timer1Timer
   Left = 160
   Top = 16
 end
end


Наиль   (2005-08-16 01:55:00) [2]

Здесь этот вопрос обсуждается постояно.
Чтобы не загружать твои мозги информацией о message, приведу примитивный пример:
type
 TForm1 = class(TForm)
   Panel1: TPanel;
   Image1: TImage;
   procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
     Y: Integer);
   procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
     Y: Integer);
 private
  a:byte;
 end;
var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin
if a=1 then Exit;
a:=1;
Image1.Picture.LoadFromFile(ProgramPath+'1.bmp');
end;

procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin
if a=2 then Exit;
a:=2;
Image1.Picture.LoadFromFile(ProgramPath+'2.bmp');
end;

И форма:
object Form1: TForm1
 Left = 216
 Top = 192
 Width = 220
 Height = 250
 Caption = 'Form1'
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = 'MS Sans Serif'
 Font.Style = []
 OldCreateOrder = False
 PixelsPerInch = 96
 TextHeight = 13
 object Panel1: TPanel
   Left = 32
   Top = 40
   Width = 153
   Height = 145
   BorderWidth = 2
   TabOrder = 0
   OnMouseMove = Panel1MouseMove
   object Image1: TImage
     Left = 3
     Top = 3
     Width = 147
     Height = 139
     Align = alClient
     OnMouseMove = Image1MouseMove
   end
 end
end


Kerk   (2005-08-16 01:13:00) [3]

Баян


Наверх

Титульная страница Поиск, карта сайта Написать письмо