Registriert seit: 8. Sep 2009
19 Beiträge
|
Re: Hilfe ( Lies X Position)
3. Mär 2010, 01:10
Delphi-Quellcode:
onstructor TBogen.Create (Zeichenflaeche: TForm; XPos, YPos, Breite, Hoehe :Integer; Farbe: TColor);
// mit diesem Befehl rufe ich TBogen auf. Aber dabei muss alles eingeben werden, was in Klammern steht.
begin
zZF := Zeichenflaeche;
zX := XPos; zY := YPos;
zB := Breite;
zH := Hoehe;
zFarbe := Farbe;
// hier wird bestimmt, wie die Eingabe heissen.
end;
procedure TBogen.Zeichnen;
var FarbeAlt: TColor;
E1,E2,E3,E4 : TPoint;
K1,K2,K3,K4,K5,K6,K7 : TPoint;
// Um TBogen zu zeichnen braucht man alle diese Werte.
begin
zSichtbar := true;
with zZF.Canvas do begin
FarbeAlt := Brush.Color;
Brush.Color := zFarbe;
E1:= Point (zX,zY);
E2:= Point (zX,zY-zH);
E3:= Point (zX+zB, zY-zH);
E4:= Point (zX+zB,zY);
// Zuerst werden vier Punkte gezeichnet.
K1 := Point (zX+Round(0.8*zB),zY);
K2 := Point (zX+Round(0.7*zB),zY-Round(0.15*zB));
K3 := Point (zX+Round(0.5*zB),zY-Round(0.25*zB));
K4 := Point (zX+Round(0.3*zB),zY-Round(0.15*zB));
K5 := Point (zX+Round(0.2*zB),zY);
// Danach werden weitere fuenf Punkte gezeichnet
Polygon([E1,E2,E3,E4,K1,K2,K3,K4,K5]);
Brush.Color:= FarbeAlt;
end;
end;
procedure TBogen.Loeschen;
var FarbeAlt: TColor;
E1,E2,E3,E4 : TPoint;
K1,K2,K3,K4,K5,K6,K7 : TPoint;
begin
zSichtbar := true;
with zZF.Canvas do begin
FarbeAlt := Brush.Color;
Brush.Color := clWhite;
Pen.Color := clWhite;
E1:= Point (zX,zY);
E2:= Point (zX,zY-zH);
E3:= Point (zX+zB, zY-zH);
E4:= Point (zX+zB,zY);
K1 := Point (zX+Round(0.8*zB),zY);
K2 := Point (zX+Round(0.7*zB),zY-Round(0.15*zB));
K3 := Point (zX+Round(0.5*zB),zY-Round(0.25*zB));
K4 := Point (zX+Round(0.3*zB),zY-Round(0.15*zB));
K5 := Point (zX+Round(0.2*zB),zY);
Polygon([E1,E2,E3,E4,K1,K2,K3,K4,K5]);
Brush.Color:= clWhite;
end;
end;
procedure TBogen.SetzeFarbe (Farbe: TColor);
begin
zFarbe := Farbe;
Zeichnen;
end;
procedure TBogen.SetzePosition (XPos, YPos: Integer);
begin
Loeschen;
zX := XPos; zY := YPos;
Zeichnen;
end;
function TBogen.LiesXPosition: Integer;
begin
LiesXPosition := zX ;
end;
function TBogen.LiesYPosition: Integer;
begin
LiesYPosition := zY ;
end;
end.
So sieht mein komplette Baukasten aus.
Alles was in diesem Baukasten stehen, muessen wir in der eigenen Klasse rufen und benutzen.
Bis function LiesXPosition habe ich alles geschaft.
Delphi-Quellcode:
unit mBauen1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, mZeichenfenster1, mBaukasten1, mGebaeude;
type
TFrmMain = class(TForm)
btZeichenfenster: TButton;
Button1: TButton;
Button3: TButton;
Button2: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
procedure btZeichenfensterClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
test : TBogen;
Zeichenfenster : TFrmZeichnen;
public
{ Public-Deklarationen }
end;
var
FrmMain: TFrmMain;
implementation
{$R *.DFM}
procedure TFrmMain.btZeichenfensterClick(Sender: TObject);
begin
Zeichenfenster := TFrmZeichnen.Create (FrmMain);
Zeichenfenster.Show;
end;
procedure TFrmMain.Button1Click(Sender: TObject);
begin
test := TBogen.Create(zeichenfenster,100,100,100,70,clGreen) ;
test.Zeichnen;
end;
procedure TFrmMain.Button2Click(Sender: TObject);
begin
test.SetzeFarbe (clBlack);
end;
procedure TFrmMain.Button3Click(Sender: TObject);
begin
test.Loeschen;
end;
procedure TFrmMain.Button4Click(Sender: TObject);
begin
test.Loeschen;
test.SetzePosition (200, 200);
test.Zeichnen;
end;
procedure TFrmMain.Button5Click(Sender: TObject);
// LiesXPosition
end;
procedure TFrmMain.Button6Click(Sender: TObject);
begin
// LiesYPosition
end;
end.
|