Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Vektorenaddition (https://www.delphipraxis.net/113769-vektorenaddition.html)

vsilverlord 14. Mai 2008 13:14


Vektorenaddition
 
Hallo,
ich hab eine eigene Klasse:
Delphi-Quellcode:
Tvektor= packed record
   x,y,z:currency;
   end;
funktioniert auch wunderbar. Wenn ich zwei Vektoren addieren will, mache ich das so:
Delphi-Quellcode:
function tform1.vektoradditon(a,b:tvektor):tvektor;
begin
result.x:=a.x+b.x;
result.y:=a.y+b.y;
result.z:=a.z+b.z;
end;
Nur leider funktioniert es nicht, wenn ich es aufrufe:
Delphi-Quellcode:
Koordinaten:=vektoraddition(Koordinaten,Geschwindigkeit)
Warum funktioniert das nicht??? :cry:
danke schon im vorraus, delphipraxis ist wirklich super

Dax 14. Mai 2008 13:18

Re: Vektorenaddition
 
Zitat:

Zitat von vsilverlord
Warum funktioniert das nicht??? :cry:

Warum funktioniert was nicht?

Die Muhkuh 14. Mai 2008 13:19

Re: Vektorenaddition
 
a) Ist das keine Klasse, sondern ein Record
b) Wäre es interessant zu wissen, was nicht funktioniert...

Tormentor32 14. Mai 2008 13:20

Re: Vektorenaddition
 
Eine Beschreibung, WAS nicht funktioniert wäre gut ;) gibts nen Fehler oder macht der nichts?

Ins Blaue geraten: Vielleicht weil deine Addieren function eine funktion von Form1 ist?

Namenloser 14. Mai 2008 13:21

Re: Vektorenaddition
 
Breakpoint auf die Zeile, mit F7 durchsteppen und die Variablenwerte überwachen.

mkinzler 14. Mai 2008 13:41

Re: Vektorenaddition
 
Brauchst du unbedingt die Enterprise Features? Sonst könntest du unter TDE (D10) Klassenoperatoren verwenden.

BTW. Du hast den Fehler in deinem Profil immer noch nicht beseitigt: Baden-Württemberg schreibt man ohne h

shmia 14. Mai 2008 13:56

Re: Vektorenaddition
 
Schau dir mal deine Funktion (die in Wirklichkeit eine Methode ist) genau an:
Delphi-Quellcode:
function tform1.vektoradditon(a,b:tvektor):tvektor;
begin
result.x:=a.x+b.x;
result.y:=a.y+b.y;
result.z:=a.z+b.z;
end;
Warum ist die Funktion Bestandteil der Klasse TForm1 ??
Die Vektoraddition hat doch absolut nichts mit dieser Klasse zu tun.

vsilverlord 14. Mai 2008 14:14

Re: Vektorenaddition
 
ok danke für euren schnellen antworten. muss an was anderem liegen, dass sich gar nichts verändert, also dass nichts addiert wird.

shmia 14. Mai 2008 14:37

Re: Vektorenaddition
 
Zitat:

Zitat von vsilverlord
muss an was anderem liegen, dass sich gar nichts verändert, also dass nichts addiert wird.

Das funktioniert ganz sicher, nur hast du im Moment Tomaten auf den Augen und kontrollierst die falschen Variable, etc.
Delphi-Quellcode:
procedure VektorTest;
var
  a,b,c : Tvektor;
begin
  a.x := 1;
  a.y := 2;
  a.z := 3;
  b.x := 3;
  b.y := 2;
  b.z := 1;

  c := vektoradditon(a,b);
  ShowMessageFmt('c=(%d,%d,%d)', [c.x,c.y,c.z]);
end;
Bin mir ziemlich sicher, dass da (4,4,4) als Ergebnis rauskommen wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:49 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