Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Undefinierter Bezeichner (https://www.delphipraxis.net/145911-undefinierter-bezeichner.html)

hansdieter11 10. Jan 2010 18:34


Undefinierter Bezeichner
 
Hallo, für Delphi sind die Ausdrücke Left und Top undefinierte Bezeichner.
Meine Frage, wieso das so ist?


Delphi-Quellcode:
procedure TForm1.TiRaumschiffTimer(Sender: TObject);
begin
  FOR r:=1 TO number DO
    begin
     IF Raumschiff[r] <> nil
     THEN
      begin
        Raumschiff[r].GoRight;
        ShRaumschiff[r].Top := Raumschiff[r].yCoord;

        If (abs (Kugel[i].Left-Raumschiff[r].Left)<1) and
            (abs (Kugel[i].Top-Raumschiff[r].Top)<1)
        Then Begin
          Raumschiff[r].Destroy;
          Abgeschossen := Abgeschossen+1;
          RaumschiffGo;
          NeuesRaumschiff;
        end;
      end;
     end;

  LaRaumschiffe.caption := inttostr(Abgeschossen);

end;
Bitte um schnelle Antwort :)
Gruß Timo

mkinzler 10. Jan 2010 18:39

Re: Undefinierter Bezeichner
 
WQelche Typen haben die Arrays Kugel[] und Raumschiff[]?

hansdieter11 10. Jan 2010 18:43

Re: Undefinierter Bezeichner
 
Das sind eigene Klassen, TKugel und TRaumschiff. ;)

mkinzler 10. Jan 2010 18:45

Re: Undefinierter Bezeichner
 
Und von was sind die abgeleitet bzw. wie sind die deklariert?

hansdieter11 10. Jan 2010 18:46

Re: Undefinierter Bezeichner
 
Delphi-Quellcode:
Kugel:Array[1..10000] of TKugel;
  ShKugel:Array[1..10000] of TShape;
  Raumschiff:Array[1..10000] of TRaumschiff;
  ShRaumschiff:Array[1..10000] of TShape;

mkinzler 10. Jan 2010 18:48

Re: Undefinierter Bezeichner
 
Und die Klassen? (Denn das ist ja das Interessante :zwinker: )

hansdieter11 10. Jan 2010 18:50

Re: Undefinierter Bezeichner
 
Ich verstehe deine Frage leider nicht :(

mkinzler 10. Jan 2010 18:52

Re: Undefinierter Bezeichner
 
Wie sind die Klassen Traumschiff und TKugel deklariert und von was sind diese abgeleitet?

hansdieter11 10. Jan 2010 18:53

Re: Undefinierter Bezeichner
 
Meinst du vielleicht, dass sie in einer eigenen Unit sind ? :?

mkinzler 10. Jan 2010 18:56

Re: Undefinierter Bezeichner
 
Nein ich will wissen, wie diese deklariert sind!

type
TKugel = ???
???
end;

Sir Rufo 10. Jan 2010 18:59

Re: Undefinierter Bezeichner
 
Zitat:

Zitat von mkinzler
Nein ich will wissen, wie diese deklariert sind!

type
TKugel = ???
???
end;

:cheers: take it easy :cheers:

hansdieter11 10. Jan 2010 19:00

Re: Undefinierter Bezeichner
 
Sorry :D
Bin einfach zu blöd :D
Ich weiß nicht, was du wissen willst...
Vielleicht, dass es eigene Klassen sind ?

mkinzler 10. Jan 2010 19:01

Re: Undefinierter Bezeichner
 
Poste mal die Unit(s) der Klassen

hansdieter11 10. Jan 2010 19:02

Re: Undefinierter Bezeichner
 
Delphi-Quellcode:
unit mtRaumschiff;

interface

  type
    TRaumschiff = class
     public
      x:integer;
      y:integer;
      vx:integer;
      constructor Create;
      property xCoord:integer read x write x;
      property yCoord:integer read y write y;
      function getY:integer;
      function getX:integer;
      procedure GoRight;
     end;
     
implementation

constructor TRaumschiff.Create;
begin
  x := -50;
  vx := Random(7)+5;
  y := Random(60)+5;
end;

function TRaumschiff.getX:integer;
begin
  x := x+vx;
  result := x;
end;

function TRaumschiff.getY:integer;
begin
  result := y;
end;

procedure TRaumschiff.GoRight;
begin
  xCoord := xCoord + 10;
end;

end.
Delphi-Quellcode:
unit mtKugel;

interface

uses
  mtKanone;

  type
    TKugel = class
     public
      y:integer;
      x:integer;
      vy:integer;
      vx:integer;
      constructor Create;
      property yCoord:integer read y write y;
      property xCoord:integer read x write x;
      function getY:integer;
      function getX:integer;
      procedure GoUp;
      destructor Destroy; override;
     end;

implementation

constructor TKugel.Create;
begin
 vy := 10;
 yCoord := 520;
end;

destructor TKugel.Destroy;
begin
  //
end;

function TKugel.getY:integer;
begin
  y := y-vy;
  result := y;
end;

function TKugel.getX:integer;
begin
  result := x;
end;

procedure TKugel.GoUp;
begin
  yCoord := getY;
end;

end.

mkinzler 10. Jan 2010 19:04

Re: Undefinierter Bezeichner
 
Keine deiner Klassen hat aber die gewünschte Eigenschaften .Top/.Left

Sir Rufo 10. Jan 2010 19:05

Re: Undefinierter Bezeichner
 
Zitat:

Zitat von hansdieter11
Sorry :D
Bin einfach zu blöd :D
Ich weiß nicht, was du wissen willst...
Vielleicht, dass es eigene Klassen sind ?

Irgendwo, in den Tiefen deines Rechners, versteckt auf einem sich schnell rotierenden Gebilde muss sich eine Datei befinden,
die auf die Endung .pas hört und in der jemand - (bestimmt) sehr kluges - plötzlich und unerwartet auf einmal folgende
Tasten hintereinander drückte:
Delphi-Quellcode:
type
TKugel = class( ....
Und diese Datei möchten wir jetzt gerne sehen.

Da steht die Deklaration für die Klasse TKugel :wall:

EDIT: Huch ... ich hätte gedacht das dauert noch ein weilchen :mrgreen:

hansdieter11 10. Jan 2010 19:05

Re: Undefinierter Bezeichner
 
Wie verbesser ich das nun ?
Habe doch eigentlich die Eigenschaften mit xCoord und yCoord.
Gruß

Sir Rufo 10. Jan 2010 19:12

Re: Undefinierter Bezeichner
 
Zitat:

Zitat von hansdieter11
Wie verbesser ich das nun ?
Habe doch eigentlich die Eigenschaften mit xCoord und yCoord.
Gruß

Das ist wie mit den Keksen ... habe ich Hunger auf Kekse kann ich

a) welche backen
b) welche kaufen
c) sublimieren (ich mähe mal den Rasen) :mrgreen:

backen geht so:
Delphi-Quellcode:
type
    TKugel = class
     public
      y:integer;
      x:integer;
      vy:integer;
      vx:integer;
      constructor Create;
      property yCoord:integer read y write y;
      property xCoord:integer read x write x;
      property Left : integer read x write x;
      property Top : integer read y write y;
      function getY:integer;
      function getX:integer;
      procedure GoUp;
      destructor Destroy; override;
     end;
Wenn du etwas Transferleistung besitzt, kannst du

a) die anderen Klassen auch erweitern
b) viel besser, lass die Klassen wie sie sind und benutze die vorgegebenen Eigenschaften (xCoord, yCoord) :mrgreen:

hansdieter11 10. Jan 2010 19:14

Re: Undefinierter Bezeichner
 
Stimmt, muss ja Kugel[r].xCoord benutzen :D:D
Ja bin auch blöd :D

Sir Rufo 10. Jan 2010 19:17

Re: Undefinierter Bezeichner
 
Zitat:

Zitat von hansdieter11
Stimmt, muss jaKugel[r].xCoord benutzen :D:D
Ja bin auch blöd :D

Na, ja, diese verdammte unit war aber auch versteckt, bis wir die gefunden hatten ... :mrgreen:

hansdieter11 10. Jan 2010 19:20

Re: Undefinierter Bezeichner
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, und jetzt nochmal zur Erklärung des Programms:

Habe eine Kanone, die man verschieben kann, und Kugeln, die abgeschossen werden, und halt Raumschiffe, die von den Kugeln zerstört werden sollen. Nun erscheinen die Raumschiffe leider nicht, sonst geht eigentlich alles :)

Füge mein Programm mal als Datei an.

Vielen Dank schonmal für die Mithilfe :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:01 Uhr.

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