![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ВЫДИЛЕНИЕ [D6, WinXP]
frum © (2002-08-21 10:38:00)Не знаю как вам объяснить, вобщем как сделать так чтобы при нажатии мышки и дальнейшем перидвижении обвадился контур, область выдиления, а при отпускании кнопки миши он исчезал.
BOA_KAA (2002-08-21 12:21:00) [1]> ArhAngel2 © (21.08.02 11:03)
Прекрасный способ рисования не только на форме, но и на TImage и прочей VCL-банде, но не полный. Не обрабатывается случай, когда конечное положение мыши (при MouseUp и MouseMove) слева или выше начального.
evgeg (2002-08-21 12:11:00) [2]в общем
перЕдвижении
обвОдился
выдЕления
мЫши
Вы совсем не уважаете людей, которых просите помочь вам
с вашим вопросом.
Игорь Шевченко (2002-08-21 12:11:00) [3]Русский выучить :-)
ArhAngel2 (2002-08-21 11:03:00) [4]Необходимо обработать события onMouseDown onMouseMove и onMouseUp
var
dr: boolean;
Rec: Trect;
procedure TForm1.FormMouseDown(Sender: TObject; Button:
TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
dr:=true;
setCapture(handle); //Получаем сообщения мыши, даже если она за пределами формы
Rec.Left:=x;
rec.Top:=y;
rec.BottomRight:=rec.TopLeft;
canvas.DrawFocusRect(Rec);
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if dr then
begin
canvas.DrawFocusRect(rec);
rec.Right:=x;
rec.Bottom:=y;
canvas.DrawFocusRect(rec);
end;
end;
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if dr then
begin
releaseCapture;
dr:=false;
invalidate;
end;
end;
I_A (2002-08-21 10:45:00) [5]DrawFocusRect
lenin (2002-08-21 10:44:00) [6]Рисовать этот контур на канве.