![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как нарисовать прозрачный прямоугольник [D6, Win2k]
Phisio © (2001-12-26 15:46:00)Как нарисовать прозрачный прямоугольник на форме при левом нажатии кнопки мыши и удерживании, а при отпускании он остаётся на форме
Anatoly Podgoretsky (2001-12-26 23:06:00) [1]А все потому, что не обратил внимания на рекомендуемый здесь DrawFocusRect
Andrey196 (2001-12-26 22:08:00) [2]Попробывал.... прикольно!!
Anatoly Podgoretsky (2001-12-26 22:04:00) [3]Попробуй поверх какой нибудь картинки
Andrey196 (2001-12-26 19:48:00) [4]
COPYRIGHT ANDREY196 @ 2001
Andrey196@mail.ru
Еще горячая тока что написал держи:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
beginmousex,beginmousey,mouseformx,mouseformy:integer;
moused:integer;
implementation
{$R *.DFM}
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
beginmousex:=x;
beginmousey:=y;
moused:=1;
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if moused=1 then Begin
canvas.brush.style:=bsclear;
canvas.pen.color:=form1.color;
canvas.Rectangle(beginmousex,beginmousey,mouseformx,mouseformy);
mouseformx:=mouse.CursorPos.x-left;
mouseformy:=mouse.CursorPos.y-top;
canvas.pen.color:=clblack;
canvas.brush.style:=bsclear;
canvas.Rectangle(beginmousex,beginmousey,mouseformx,mouseformy);
end;
end;
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
moused:=0;
canvas.Brush.color:=clwhite;
canvas.Rectangle(beginmousex,beginmousey,mouseformx,mouseformy);
end;
end.
Anatoly Podgoretsky (2001-12-26 19:11:00) [5]Ни как, если только ты не сохранишь все точки под ним.
avr555 (2001-12-26 18:08:00) [6]А как можно стереть с Canvas например, Rectanle?
Каким цветом нужно зарисовывать?
Anatoly Podgoretsky (2001-12-26 17:17:00) [7]Зачем Shape, не проще ли Rectangle раз уж остальное делается на той же канве и есть уже готовый Rect
Romkin (2001-12-26 15:51:00) [8]см DrawFocusRect, подаешь Canvas.Handle & Rect: TRect, при повторном вызове - сам сотрет, и обрабатываешь OnMouseDown, OnMouseMove, на OnMouseUp - просто рисуешь shape по TRect