![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ReleaseCapture
LigthStone © (2007-03-02 15:21:00)Здравствуйте, у меня возникла одна станная проблемка в Delphi.
Если написать у Image при событии OnMouseDown ReleaseCapture;,
то событие OnMouseUp почему-то не работает.
Пример кода:
procedure TfrmMain.ResizeMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if (ssleft in shift)
Begin ReleaseCapture; Perform(WM_SysCommand, $F008, 0);end;
end;
procedure TfrmMain.ResizeMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
{Не работает любой код}
end;
Не могли бы вы подсказать как это исправить.:)
Заранее благодарен за ответы.
LigthStone (2007-03-02 16:31:00) [1]easy то что ты предложил конечно будет работать, но в моём варианте меньше писанины.
sniknik как ни старнно, но твой вариант работает.
P.S. Спасибо всем.
sniknik (2007-03-02 16:14:00) [2]procedure TfrmMain.ResizeMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if (ssleft in shift)
Begin ReleaseCapture; Perform(WM_SysCommand, $F008, 0);ResizeMouseUp(...)end;
end;
easy (2007-03-02 16:02:00) [3]
private
{ Private declarations }
pt:TPoint;
//*****************************
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
pt.X:=X;
pt.Y:=Y;
Caption:='Begin resize.';
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if (ssleft in shift) then begin
Width:= Width-(pt.X-X);
Height:= Height-(pt.Y-Y);
end;
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Caption:='Congratulation!';
end;