Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];




Вниз

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


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




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.018 c
4-42590           Jaya!                 2001-11-10 07:33  2002.01.14  
Смена раскладки клавиатуры


4-42606           tropin                2001-11-13 20:46  2002.01.14  
Как получить переменные среды?


1-42462           voice                 2001-12-25 11:03  2002.01.14  
ShellExecute?


3-42393           Sharm                 2001-12-10 17:38  2002.01.14  
Поиск по русским символам


1-42473           vitaminchik           2001-12-25 12:54  2002.01.14  
Хранение данных в файлы