 |
|
|
Informatik |
|
Autor: be
21.09.2005 10:52 490
|
|
|
Punkte verbinden - Lösung
unit mPunkteVerbinden;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
btLoeschen: TButton;
btGrenzeRechts: TButton;
procedure FormCreate(Sender: TObject);
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure btLoeschenClick(Sender: TObject);
procedure btGrenzeRechtsClick(Sender: TObject);
private
{ Private-Deklarationen }
punkteX, punkteY: Array[1..20] of Integer;
index: Integer;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);
index := 1;
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var i: Integer;
begin
if index <= 20 then
begin
punkteX[index] := X;
punkteY[index] := Y;
for i:=1 to index-1 do
begin
Image1.Canvas.MoveTo(X,Y);
Image1.Canvas.LineTo(punkteX[i], punkteY[i])
end;
Inc(index)
end;
end;
procedure TForm1.btLoeschenClick(Sender: TObject);
begin
Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);
index:=1;
end;
procedure TForm1.btGrenzeRechtsClick(Sender: TObject);
var xmax, i: Integer;
begin
xmax := 0;
for i:=1 to index-1 do
if punkteX[i] > xmax then
xmax := punkteX[i];
with Image1.Canvas do
begin
MoveTo(xmax,0);
LineTo(xmax,Image1.Height);
end;
end;
end.