![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DrawFocusRect
>|< © (2012-03-17 14:23:00)Здравствуйте!
Работает ли данная функция в Windows 7?
Привожу код, который не работает(компилировал в Delphi 7)
procedure TfrmParseImages.imgBlankMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if Capturing then
begin
DrawFocusRect(imgBlank.Canvas.Handle,MakeRect(StartPlace,EndPlace));
EndPlace.x := X;
EndPlace.y := Y;
DrawFocusRect(imgBlank.Canvas.Handle,MakeRect(StartPlace,EndPlace));
end;
if opdScan.FileName = '' then
Exit;
sbMain.Panels[3].Text := IntToStr(x) + ',' + IntToStr(y);
sbMain.Panels[5].Text := IntToStr(Round(x / imgBlank.Width * 10000)) + ',' + IntToStr(Round(y / imgBlank.Height * 10000));
sbMain.Panels[6].Text := ColorToString(imgBlank.Canvas.Pixels[x, y])
end;
procedure TfrmParseImages.imgBlankMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Captured then
DrawFocusRect(imgBlank.Canvas.Handle,MakeRect(StartPlace, EndPlace));
StartPlace.x := X;
StartPlace.y := Y;
EndPlace.x := X;
EndPlace.y := Y;
// DrawFocusRect(imgBlank.Canvas.Handle, MakeRect(StartPlace, EndPlace));
Capturing := true;
Captured := true;
end;
procedure TfrmParseImages.imgBlankMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Capturing := false;
end;
>|< (2012-03-17 15:23:00) [1]
> (Sender as TImage).Canvas.DrawFocusRect(Rect(StartPlace,
> EndPlace)) - так тоже не работает?
Спасибо, работает!
begin...end (2012-03-17 15:06:00) [2]> >|< (17.03.12 14:23)
> DrawFocusRect(imgBlank.Canvas.Handle,MakeRect(StartPlace, EndPlace))
(Sender as TImage).Canvas.DrawFocusRect(Rect(StartPlace, EndPlace)) - так тоже не работает?
>|< (2012-03-17 15:03:00) [3]Похоже я использую не ту канву, на которой пытаюсь рисовать...
Если использовать канву формы, на которой лежит Image, то FocusRect рисуется, а если использовать канву Image.Picture.Bitmap.Canvas , то прямоугольник не рисуется.
Если на форме лежит ScrollBox и в нем Image, то какую канву нужно использовать, чтобы увидеть FocusRect?