Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.07;
Скачать: CL | DM;

Вниз

DrawFocusRect: ПОЧЕМУ???   Найти похожие ветки 

 
LongIsland ©   (2002-10-28 20:06) [0]

Вот такая проблема: чтобы выделить часть рисунка в TImage использую DrawFocusRect. НО! Когда веду указатель мыши из левого верхнего угла в правый нижний и из правого верхнего в левый нижний, то все ОК. Если веду снизу вверх медленно, то тоже все ОК. А если в последнем случае несколько быстрее веду указатель мыши несколько быстрее, то прямоугольник срывается и исчезает:-( WHY???

ЗЫ: Код приводится...

var
Form1: TForm1;
dr: Boolean;
Rec: TRect;
X0, Y0: Integer;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
dr:=true;
setCapture(handle);
X0:=x; Y0:=y;
Rec.Left:=x0;
rec.Top:=y0;
rec.BottomRight:=rec.TopLeft;
canvas.DrawFocusRect(Rec);
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if dr then
begin
canvas.DrawFocusRect(rec);
if (x>=Rec.Left) and (y>=Rec.Top) then
begin
rec.Right:=x;
rec.Bottom:=y;
end
else
if (x<Rec.Left) then
begin
if y>=Rec.Top then
begin
Rec.Right:=X0;
Rec.Left:=x;
Rec.Bottom:=y;
end
else
begin
Rec.Right:=X0;
Rec.Left:=x;
Rec.Top:=y;
Rec.Bottom:=Y0;
end;
end
else
begin
Rec.Right:=x;
Rec.Top:=y;
Rec.Bottom:=Y0;
end;

canvas.DrawFocusRect(rec);
end;
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if dr then
begin
releaseCapture;
dr:=false;
//invalidate;
end;
end;


 
LongIsland ©   (2002-10-28 21:40) [1]

Ситуация усугубляется... Переопределение OnMouseMove на WM_MOUSEMOVE (ну, вы понимаете о чем я :-)) ничего не дало:-(
Может кто все-таки ошибку видит?..


 
LongIsland ©   (2002-10-29 09:23) [2]

Неужели никто не в силах помочь:-(



Страницы: 1 вся ветка

Текущий архив: 2002.11.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
14-21793
MaximatorVeter
2002-10-10 23:02
2002.11.07
Когнетивная психология!


1-21678
wer1
2002-10-28 10:36
2002.11.07
Мастера подскажите! Как определить какое колличество строк в Memo


14-21762
Сатир
2002-10-18 17:02
2002.11.07
хе-хе, конхвуз


1-21597
Higs
2002-10-30 12:47
2002.11.07
Обход всех контролов


3-21449
vladimir_12
2002-10-21 12:23
2002.11.07
Поиск в Dataset или DBGrid