![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработка события входа курсора мыши на компонент и выхода!
Витёк © (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]Баян