![]() |
Vektorenaddition
Hallo,
ich hab eine eigene Klasse:
Delphi-Quellcode:
funktioniert auch wunderbar. Wenn ich zwei Vektoren addieren will, mache ich das so:
Tvektor= packed record
x,y,z:currency; end;
Delphi-Quellcode:
Nur leider funktioniert es nicht, wenn ich es aufrufe:
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;
Delphi-Quellcode:
Warum funktioniert das nicht??? :cry:
Koordinaten:=vektoraddition(Koordinaten,Geschwindigkeit)
danke schon im vorraus, delphipraxis ist wirklich super |
Re: Vektorenaddition
Zitat:
|
Re: Vektorenaddition
a) Ist das keine Klasse, sondern ein Record
b) Wäre es interessant zu wissen, was nicht funktioniert... |
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? |
Re: Vektorenaddition
Breakpoint auf die Zeile, mit F7 durchsteppen und die Variablenwerte überwachen.
|
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 |
Re: Vektorenaddition
Schau dir mal deine Funktion (die in Wirklichkeit eine Methode ist) genau an:
Delphi-Quellcode:
Warum ist die Funktion Bestandteil der Klasse TForm1 ??
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; Die Vektoraddition hat doch absolut nichts mit dieser Klasse zu tun. |
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.
|
Re: Vektorenaddition
Zitat:
Delphi-Quellcode:
Bin mir ziemlich sicher, dass da (4,4,4) als Ergebnis rauskommen wird.
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 Uhr. |
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