Показать сообщение отдельно
  #5  
Старый 02.07.2010, 09:05
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

PHP код:
unit Unit1;

interface

uses
  ExtCtrls
,
  
WindowsMessagesSysUtilsVariantsClassesGraphicsControlsForms;

type
  TForm1 
= class(TForm)
    
procedure FormCreate(SenderTObject);
  private
    
procedure PaintBoxPaint(SenderTObject);
    
procedure PaintBoxClick(SenderTObject);
    
procedure PaintBoxLinePaint(SenderTObject);
    
procedure PaintBoxLineClick(SenderTObject);
  public
  
end;

var
  
Form1TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(SenderTObject);
var
  
paintboxTPaintBox;
  
x1y1x2y2Integer;
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(SenderTObject);
var
  
paintboxTPaintBox;
begin
  paintbox
:=TPaintBox(Sender);
  
paintbox.Canvas.Pen.Color:=paintbox.Color;
  
paintbox.Canvas.FillRect(paintbox.ClientRect);
end;

procedure TForm1.PaintBoxClick(SenderTObject);
var
  
paintboxTPaintBox;
begin
  paintbox
:=TPaintBox(Sender);
  
paintbox.Color:=Random($ffffff);
  
paintbox.Invalidate;
end;

procedure TForm1.PaintBoxLinePaint(SenderTObject);
var
  
paintboxTPaintBox;
begin
  paintbox
:=TPaintBox(Sender);
  
paintbox.Canvas.Pen.Color:=paintbox.Color;
  
paintbox.Canvas.Pen.Width:=4;
  
paintbox.Canvas.MoveTo(paintbox.ClientRect.Leftpaintbox.ClientRect.Top);
  
paintbox.Canvas.LineTo(paintbox.ClientRect.Rightpaintbox.ClientRect.Bottom);
end;

procedure TForm1.PaintBoxLineClick(SenderTObject);
var
  
iInteger;
  
paintboxTPaintBox;
  
cTColor;
begin
  paintbox
:=TPaintBox(Sender);
  if 
paintbox.Canvas.Pixels[paintbox.ScreenToClient(Mouse.CursorPos).Xpaintbox.ScreenToClient(Mouse.CursorPos).Y]=paintbox.Color then
  begin
    c
:=Random($ffffff);
    for 
i:=0 to ComponentCount-do
    
begin
      
if Components[iis TPaintBox then
      begin
        paintbox
:=TPaintBox(Components[i]);
        
paintbox.Color:=c;
        
paintbox.Invalidate;
      
end;
    
end;
  
end;
end;

end
http://data.cod.ru/62299
Ответить с цитированием