
19.01.2011, 18:08
|
 |
I Like it!
|
|
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 663
Версия Delphi: D6/D7
Репутация: 26643
|
|
К панели можно "прицепить" канвас:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
procedure Panel1Click(Sender: TObject);
procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
a: TControlCanvas;
mp: TPoint;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
a := TControlCanvas.Create;
a.Control := Panel1;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
a.Control := nil;
a.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
with a do
begin
Brush.Color := clRed;
RoundRect(10, 10, 50, 50, 5, 5);
Brush.Color := clGreen;
RoundRect(30, 30, 70, 70, 5, 5);
Brush.Color := clBlue;
RoundRect(50, 50, 90, 90, 5, 5);
end;
end;
procedure TForm1.Panel1Click(Sender: TObject);
begin
ShowMessage(ColorToString(a.Pixels[mp.X, mp.Y]));
end;
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
mp := Point(X, Y);
end;
end.
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
|