
20.10.2012, 23:59
|
 |
Профессионал
|
|
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
|
|
Цитата:
Сообщение от YVitaliy
Код:
procedure TForm1.sbt_StatMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
pt: TPoint;
begin
sbt_Stat.Perform( BM_SETSTATE, 1, 0 );
with Sender as TButton do
begin
pt := Point(Left, Top + Height);
pt := Parent.ClientToScreen(pt);
end;
PopupMenu1.Popup(pt.X, pt.Y);
sbt_Stat.Perform( BM_SETSTATE, 0, 0 );
end;
В OnMouseMove.
|
Ну если от Sender'а отталкиваться - тогда уж до конца  :
Код:
procedure TForm1.sbt_StatMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
pt: TPoint;
begin
with Sender as TButton do
begin
Perform(BM_SETSTATE, 1, 0);
pt := Parent.ClientToScreen(Point(Left, Top + Height));
PopupMenu1.Popup(pt.X, pt.Y);
Perform(BM_SETSTATE, 0, 0);
end;
end;
p.s. Хотя конструкцию with я недолюбливаю...
|