Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как нарисовать прозрачный прямоугольник [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо