Главная страница
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.018 c
14-21744
AlexandrChup
2002-10-16 17:48
2002.11.07
Поиск


6-21729
Mufta
2002-09-07 18:11
2002.11.07
Мастера а как программно менять прокси через реестр


8-21692
kuzmich
2002-07-16 12:45
2002.11.07
DelfiX for Delfi 6


14-21817
Ajax
2002-10-13 13:12
2002.11.07
MPEG4 фильмы на слабой машине...


4-21868
Adept
2002-09-24 11:38
2002.11.07
Как сделать окно находящееся ниже всех.