unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Unit2; type TForm1 = class(TForm) PaintBox1: TPaintBox; ColorDialog1: TColorDialog; Button1: TButton; FontDialog1: TFontDialog; Button2: TButton; Button3: TButton; procedure PaintBox1Paint(Sender: TObject); procedure PaintBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure PaintBox1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private x1,x2,y1,y2 : integer; paint : boolean; color : TColor; fnt : TFont; text : string; { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.PaintBox1Paint(Sender: TObject); begin with PaintBox1.Canvas do begin Pen.Color := color; Pen.Width := 5; Brush.Color := clBlue; //MoveTo(x1,y1); //LineTo(x2,y2); Rectangle(x1,y1,x2,y2); FillRect(Rect(x1,y1,x2,y2)); // centruje text do stredu canvasu Brush.Color := clBtnFace; Font := fnt; TextOut(Width div 2 - TextWidth(text) div 2 ,Height div 2 - TextHeight(text) div 2,text); end; end; procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin x1 := X; y1 := Y; paint := true; end; procedure TForm1.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin paint := false; end; procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if paint then begin x2 := X; y2 := Y; PaintBox1.Repaint; // znovu vykresli paintbox end; end; procedure TForm1.FormCreate(Sender: TObject); begin x1 := 0; x2 := 0; y1 := 0; y2 := 0; paint := false; color := clGreen; fnt := Form1.Font; text := 'A je To!'; end; procedure TForm1.Button1Click(Sender: TObject); begin ColorDialog1.Color := color; if ColorDialog1.Execute then begin color := ColorDialog1.Color; PaintBox1.Repaint; end; end; procedure TForm1.Button2Click(Sender: TObject); begin FontDialog1.Font := fnt; if FontDialog1.Execute then begin fnt := FontDialog1.Font; PaintBox1.Repaint; end; end; procedure TForm1.Button3Click(Sender: TObject); begin Form2.Edit1.Text := text; Form2.ShowModal; if Form2.ModalResult = mrOK then begin text := Form2.Edit1.Text; PaintBox1.Repaint; end; end; end.