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

Вниз

Как нарисовать прозрачный прямоугольник   Найти похожие ветки 

 
Phisio   (2001-12-26 15:46) [0]

Как нарисовать прозрачный прямоугольник на форме при левом нажатии кнопки мыши и удерживании, а при отпускании он остаётся на форме


 
Romkin ©   (2001-12-26 15:51) [1]

см DrawFocusRect, подаешь Canvas.Handle & Rect: TRect, при повторном вызове - сам сотрет, и обрабатываешь OnMouseDown, OnMouseMove, на OnMouseUp - просто рисуешь shape по TRect


 
Anatoly Podgoretsky ©   (2001-12-26 17:17) [2]

Зачем Shape, не проще ли Rectangle раз уж остальное делается на той же канве и есть уже готовый Rect


 
avr555 ©   (2001-12-26 18:08) [3]

А как можно стереть с Canvas например, Rectanle?
Каким цветом нужно зарисовывать?


 
Anatoly Podgoretsky ©   (2001-12-26 19:11) [4]

Ни как, если только ты не сохранишь все точки под ним.


 
Andrey196 ©   (2001-12-26 19:48) [5]


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 22:04) [6]

Попробуй поверх какой нибудь картинки


 
Andrey196 ©   (2001-12-26 22:08) [7]

Попробывал.... прикольно!!


 
Anatoly Podgoretsky ©   (2001-12-26 23:06) [8]

А все потому, что не обратил внимания на рекомендуемый здесь DrawFocusRect



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

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

Наверх




Память: 0.48 MB
Время: 0.01 c
14-42547
vasco
2001-11-19 02:39
2002.01.14
Выравнивание по ширине в hlp-файле...


1-42515
Simonaln
2001-12-26 11:32
2002.01.14
Расстояние между строками в Memo


14-42560
VEG
2001-11-18 22:34
2002.01.14
Крупный шрифт


1-42486
GreySerg
2001-12-20 17:44
2002.01.14
Как создать Ole обьект вручную,т.е. не используя tlb файл, без регистрации?


3-42367
Nest
2001-11-29 12:32
2002.01.14
Можно ли работать с временной таблицей (напр. #tmp_tab_name ) через Ttable?