Einzelnen Beitrag anzeigen

xman236

Registriert seit: 8. Sep 2009
19 Beiträge
 
#16

Re: Hilfe ( Lies X Position)

  Alt 3. Mär 2010, 00: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.
  Mit Zitat antworten Zitat