 |
|
|
Informatik |
|
Autor: be
21.09.2005 10:43 479
|
|
|
Buchstaben malen - Lösung
unit mBuntschrift;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
imEingabe: TImage;
imAusgabe: TImage;
Label1: TLabel;
Label2: TLabel;
procedure imEingabeMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormCreate(Sender: TObject);
procedure imAusgabeMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private-Deklarationen }
punkteX: Array[1..200] of Integer;
punkteY: Array[1..200] of Integer;
index: Integer;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
imEingabe.Canvas.Rectangle(0,0,imEingabe.Width,imEingabe.Height);
imAusgabe.Canvas.Rectangle(0,0,imAusgabe.Width,imAusgabe.Height);
imEingabe.Canvas.Brush.Color := clBlack;
imAusgabe.Canvas.Brush.Color := clBlack;
for i:=1 to 200 do
begin
punkteX[i] := -1;
punkteY[i] := -1
end;
index := 1;
end;
procedure TForm1.imEingabeMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if (Shift=[ssLeft]) and (index <= 200) then
begin
imEingabe.Canvas.Ellipse(X-3,Y-3,X+3,Y+3);
punkteX[index] := X;
punkteY[index] := Y;
Inc(index)
end;
end;
procedure TForm1.imAusgabeMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var i: Integer;
begin
for i:=1 to 200 do
if (punkteX[i] >= 0) and (punkteY[i] >= 0) then
imAusgabe.Canvas.Ellipse(
X+punkteX[i]-3, Y+punkteY[i]-3,
X+punkteX[i]+3, Y+punkteY[i]+3);
end;
end.