Mám za úkol udělat kreslení polygonu, jehož vrcholy si uživatel sám "nakliká" myší... Problémy mám dva:
- vždycky se mi jako první bod uloží [0;0] a pak ty, na které kliknu. Takže polgon se "protáhne" i do toho počátku formuláře...
- možná by nebylo na škodu, aby se nějak ty body, na který uživatel klikne označily (kžížkem nebo puntíkem), aby viděl, jaký přibližně ten polygon bude ještě před vykreslením...
Tady je to, co jsme vytviřil:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
i: integer;
Body: array[1..100] of TPoint;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Canvas.Brush.Color:=clBlue;
Form1.Canvas.Polygon(Body);
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Body[i]:=Point(X,Y);
i:=i+1;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
i:=1;
end;
end.
Poradíte někdo, jak to mám upravit, aby to fungovalo správně? díky