Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Hilfe ( Lies X Position) (https://www.delphipraxis.net/148477-hilfe-lies-x-position.html)

Luckie 2. Mär 2010 23:59

Re: Hilfe ( Lies X Position)
 
Zitat:

Zitat von xman236
Ich moechte mit Lies X Position die aktuelle X Werte meines Koerpers ausgeben.

Und genau das macht mein Code, wenn ich diese Codefragment von dir richtig verstanden habe.

xman236 3. Mär 2010 00:02

Re: Hilfe ( Lies X Position)
 
Delphi-Quellcode:
begin
  Bogen := TBogen.Create;
an dieser Stelle sagt Delphi ungenuegende Parameter.

Heisst das, dass ich alle Parameter, wie z. B
Delphi-Quellcode:
TBogen.Create (Zeichenflaeche: TForm; XPos, YPos, Breite, Hoehe :Integer; Farbe: TColor);
eingeben muss?

Sir Rufo 3. Mär 2010 00:04

Re: Hilfe ( Lies X Position)
 
Dann gib ihm doch die Werte
Delphi-Quellcode:
TBogen.Create ( EineBeliebigeForm, 1, 2, 3, 4, clBlack);
äh ... bevor du dass jetzt einfach so übernimmst, du musst natürlich die passenden Werte übergeben :mrgreen:

xman236 3. Mär 2010 00:06

Re: Hilfe ( Lies X Position)
 
Koennt ihr mir bitte erklaeren, was die aktuelle X werte auszugebe, heisst ...?

Sir Rufo 3. Mär 2010 00:07

Re: Hilfe ( Lies X Position)
 
Zitat:

Zitat von xman236
Koennt ihr mir bitte erklaeren, was die aktuelle X werte auszugebe, heisst ...?

ja warte ... :glaskugel: 42

Wir kennen den ProgrammCode nicht, wie sollen wir dir da sagen, was da rauskommen soll???
Oder was das bedeuten soll???

xman236 3. Mär 2010 00:10

Re: Hilfe ( Lies X Position)
 
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.

Luckie 3. Mär 2010 00:11

Re: Hilfe ( Lies X Position)
 
Zitat:

Zitat von xman236
Delphi-Quellcode:
begin
  Bogen := TBogen.Create;
an dieser Stelle sagt Delphi ungenuegende Parameter.

Keine Ahnung. Du gibst uns ja immer nur irgendwelche Bruchstücke.

Sir Rufo 3. Mär 2010 00:14

Re: Hilfe ( Lies X Position)
 
Das mit dem Code-Fragment ist ja ein schöner Anfang, aber

gib uns die GESAMTE Unit, wo die Klasse TBogen definiert ist.

Es sein denn, diese Unit enthält den geheimen Code zur Übernahme der Weltherrschaft,
dann können wir verstehen, dass wir nur diese Schnipselchen bekommen.

xman236 3. Mär 2010 00:16

Re: Hilfe ( Lies X Position)
 
Delphi-Quellcode:
type TBogen = class (TObject)
     private
       zZF: TForm;
       zX, zY, zB, zH : Integer;
       zFarbe: TColor;
       zSichtbar: Boolean;
     public
       constructor Create (Zeichenflaeche: TForm; XPos, YPos, Breite, Hoehe:Integer; Farbe: TColor);
       // destructor Destroy; {geerbt}
       procedure Zeichnen;
       procedure Loeschen;
       procedure SetzeFarbe (Farbe: TColor);
       procedure SetzePosition (XPos, YPos: Integer);
       function LiesXPosition: Integer;
       function LiesYPosition: Integer;
     end;
Meinst du das hier ? Sir Rufo?

Sir Rufo 3. Mär 2010 00:19

Re: Hilfe ( Lies X Position)
 
Auch ...

bei mir sieht eine Unit so aus:
Delphi-Quellcode:
unit DieUnitMitDemNamenUnit; // <-- Hier fängt die Unit an

interface

type
  TWeltherrschaft = class
  private
  public
    constructor Create;
  end;

implementation

constructor TWeltherrschaft.Create;
  begin
    inherited Create;
  end;

end. // <-- Hier hört die Unit auf
Also wir hätten gerne alles zwischen "unit" und "end." inklusive der beiden.

Kann doch nicht so schwer sein, bei der Unit mBauen1 hast du es ja auch geschafft.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:33 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz