 |
|
|
Informatik |
|
Autor: be
21.09.2005 10:53 418
|
|
|
Zeichen kopieren 2D - Lösung
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons;
type
TMainForm = class(TForm)
imEingabe: TImage;
imAusgabe: TImage;
btEinLoeschen: TBitBtn;
btAusLoeschen: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure imEingabeMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure imAusgabeMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure btEinLoeschenClick(Sender: TObject);
procedure btAusLoeschenClick(Sender: TObject);
procedure imEingabeDblClick(Sender: TObject);
private
{ Private-Deklarationen }
pixels: array[0..199,0..199] of Boolean;
public
{ Public-Deklarationen }
end;
var
MainForm: TMainForm;
implementation
{$R *.dfm}
procedure TMainForm.FormCreate(Sender: TObject);
begin
imEingabe.Canvas.Brush.Color := clWhite;
imEingabe.Canvas.Rectangle(0, 0, imEingabe.Width, imEingabe.Height);
imAusgabe.Canvas.Brush.Color := clWhite;
imAusgabe.Canvas.Rectangle(0, 0, imAusgabe.Width, imAusgabe.Height);
end;
procedure TMainForm.imEingabeMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if (Shift = [ssLeft]) and
( 0<= X) and (X <= 199) and
(0 <= Y) and (Y <= 199) then
begin
imEingabe.Canvas.Brush.Color := clBlack;
pixels[X, Y] := true;
imEingabe.Canvas.Ellipse(X-3, Y-3, X+3, Y+3);
end;
end;
procedure TMainForm.imAusgabeMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var i,j: Integer;
begin
imAusgabe.Canvas.Brush.Color := clBlack;
for i := 0 to 199 do
for j:= 0 to 199 do
if pixels[i, j] = true then
imAusgabe.Canvas.Ellipse(X+i-3, Y+j-3, X+i+3, Y+j+3);
end;
procedure TMainForm.btEinLoeschenClick(Sender: TObject);
var i,j: Integer;
begin
for i := 0 to 199 do
for j := 0 to 199 do
pixels[i,j] := false;
imEingabe.Canvas.Brush.Color := clWhite;
imEingabe.Canvas.Rectangle(0, 0, imEingabe.Width, imEingabe.Height);
end;
procedure TMainForm.imEingabeDblClick(Sender: TObject);
var i,j: Integer;
begin
for i := 0 to 199 do
for j := 0 to 199 do
pixels[i,j] := false;
imEingabe.Canvas.Brush.Color := clWhite;
imEingabe.Canvas.Rectangle(0, 0, imEingabe.Width, imEingabe.Height);
end;
procedure TMainForm.btAusLoeschenClick(Sender: TObject);
begin
imAusgabe.Canvas.Brush.Color := clWhite;
imAusgabe.Canvas.Rectangle(0, 0, imAusgabe.Width, imAusgabe.Height);
end;
end.