
02.07.2010, 09:05
|
 |
Let Me Show You
|
|
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
|
|
PHP код:
unit Unit1;
interface
uses
ExtCtrls,
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
procedure PaintBoxPaint(Sender: TObject);
procedure PaintBoxClick(Sender: TObject);
procedure PaintBoxLinePaint(Sender: TObject);
procedure PaintBoxLineClick(Sender: TObject);
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
paintbox: TPaintBox;
x1, y1, x2, y2: Integer;
begin
Randomize;
// 1
paintbox:=TPaintBox.Create(Self);
paintbox.Parent:=Self;
paintbox.Left:=10;
paintbox.Top:=10;
paintbox.Color:=Random($ffffff);
paintbox.OnPaint:=PaintBoxPaint;
paintbox.OnClick:=PaintBoxClick;
x1:=paintbox.Left+paintbox.Width;
y1:=paintbox.Top;
// 2
paintbox:=TPaintBox.Create(Self);
paintbox.Parent:=Self;
paintbox.Left:=200;
paintbox.Top:=10;
paintbox.Color:=Random($ffffff);
paintbox.OnPaint:=PaintBoxPaint;
paintbox.OnClick:=PaintBoxClick;
x2:=paintbox.Left;
y2:=paintbox.Top+paintbox.Height;
// line
paintbox:=TPaintBox.Create(Self);
paintbox.Parent:=Self;
paintbox.Left:=x1;
paintbox.Top:=y1;
paintbox.Width:=x2-x1;
paintbox.Height:=y2-y1;
paintbox.Color:=Random($ffffff);
paintbox.OnPaint:=PaintBoxLinePaint;
paintbox.OnClick:=PaintBoxLineClick;
end;
procedure TForm1.PaintBoxPaint(Sender: TObject);
var
paintbox: TPaintBox;
begin
paintbox:=TPaintBox(Sender);
paintbox.Canvas.Pen.Color:=paintbox.Color;
paintbox.Canvas.FillRect(paintbox.ClientRect);
end;
procedure TForm1.PaintBoxClick(Sender: TObject);
var
paintbox: TPaintBox;
begin
paintbox:=TPaintBox(Sender);
paintbox.Color:=Random($ffffff);
paintbox.Invalidate;
end;
procedure TForm1.PaintBoxLinePaint(Sender: TObject);
var
paintbox: TPaintBox;
begin
paintbox:=TPaintBox(Sender);
paintbox.Canvas.Pen.Color:=paintbox.Color;
paintbox.Canvas.Pen.Width:=4;
paintbox.Canvas.MoveTo(paintbox.ClientRect.Left, paintbox.ClientRect.Top);
paintbox.Canvas.LineTo(paintbox.ClientRect.Right, paintbox.ClientRect.Bottom);
end;
procedure TForm1.PaintBoxLineClick(Sender: TObject);
var
i: Integer;
paintbox: TPaintBox;
c: TColor;
begin
paintbox:=TPaintBox(Sender);
if paintbox.Canvas.Pixels[paintbox.ScreenToClient(Mouse.CursorPos).X, paintbox.ScreenToClient(Mouse.CursorPos).Y]=paintbox.Color then
begin
c:=Random($ffffff);
for i:=0 to ComponentCount-1 do
begin
if Components[i] is TPaintBox then
begin
paintbox:=TPaintBox(Components[i]);
paintbox.Color:=c;
paintbox.Invalidate;
end;
end;
end;
end;
end.
http://data.cod.ru/62299
|