Entwickler-Ecke

Multimedia / Grafik - Welcher Variabelntyp ist TSprite.Y :?


fux - Mo 27.01.03 18:37
Titel: Welcher Variabelntyp ist TSprite.Y :?
Huhu, ich bekomme beim Versuch die Y Position eines TSprites bei DelphiX mit einem Editfeld auszugeben....


Quelltext
1:
edit1.text := TSprite.Y                    

Zitat:
[Fehler] Unit1.pas(180): Inkompatible Typen: 'String' und 'Double'


Ja, klar, also machen wir doch einfach

Quelltext
1:
edit1.text := floattostr(TSprite.Y)                    


pah, denkste :cry:
dann kommt nämlich sowas:
Zitat:
Im Projekt Project1.exe ist eine Exception der Klasse EAcessViolation aufgetreten. Bei Adresse blabla, Lesen von Adresse blubb. Prozeß wurde angehalten


Thx 4 Help, Ciao


Keldorn - Mo 27.01.03 21:31
Titel: Re: Welcher Variabelntyp ist TSprite.Y :?
fux hat folgendes geschrieben:



Quelltext
1:
edit1.text := floattostr(TSprite.Y)                    




Hallo,
sieht n bissel komisch aus TSprite ist normalerweise die Klasse, eine Instanz wäre z.B. Sprite1, und wenn eine Instanz exitiert sollte
edit1.text := floattostr(Sprite1.Y) schon funktionieren.
oder wie vergibst du die Namen?

Mfg Frank


fux - Di 28.01.03 08:52


Quelltext
1:
2:
3:
4:
5:
6:
TPong = class(TImageSprite)
  public
    procedure DoMove(MoveCount: Integer); override;
    constructor Create(AParent: TSprite); override;
    procedure DoCollision(Sprite: TSprite; var Done: Boolean); override;
  end;


Quelltext
1:
var   pong: TPong;                    



Und dann eben Pong.Y ... das müsste doch eigentlich gehen, da ich ihm auch einen Startwert über Y zu teilen konnte...


Quelltext
1:
2:
3:
4:
5:
  with TPong.Create(DXSpriteEngine1.Engine) do  
  begin
    X := DXDraw1.Width / 2 - 5;
    Y := DXDraw1.Height / 2 - 5;
  end;


Sivar - Di 28.01.03 09:10

Du musst schon eine Instanzt erzeugen - wie Keldorn schon geschrieben hat.

Pong wird in deinem Beispiel garnicht verwendet!!

Versuchs mal mit


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
var   
  Pong: TPong;
  .
  .
  .
begin
  Pong := TPong.Create(DXSpriteEngine1.Engine);
  with Pong do
  begin 
    X := DXDraw1.Width / 2 - 5; 
    Y := DXDraw1.Height / 2 - 5; 
  end;
  .
  .
  .


Gruß
Sivar