Delphi access violation probléma? (kezdő vagyok)
TValami=Class
X,Y:Extended;
end;
...
function (Z:TValami):TValami;
var XY:TValami;
begin
...
XY:=TValami.Create;
...
XY.Free;
end;
Ezzel a problémám:
-NÉHA! hülyeségeket ad vissza, de ha nem szabadítom fel a memóriából akkor minden oké.
Kérdés: Miért van? Hogy csinálhatom meg?
TPEx=Class
X,Y:Extended;
end;
...
Function Inm(X,Y:Extended; frd:Extended):TPEx;
var X1,Y1,Tav:Extended; Ir:TPointEx;
begin
X1:=X;Y1:=Y;
Tav:=Tavolsag(0,0,X1,Y1);
Ir:=TPointEx.Create;
If Tav>0 then begin
Ir.X:=X1/Tav;
Ir.Y:=Y1/Tav;
Irany:=Ir; end else begin
Irany:=Ir; end;
Ir.free;// <-- probléma
end;
Így jó? a Teljes forráskód nagyon nagy.
Bocs így a helyes.
TPEx=Class
X,Y:Extended;
end;
...
Function Inm(X,Y,frd:Extended):TPEx;
var X1,Y1,Tav:Extended; Ir:TPEx;
begin
X1:=X;Y1:=Y;
Tav:=Tavolsag(0,0,X1,Y1);
Ir:=TPEx.Create;
If Tav>0 then begin
Ir.X:=X1/Tav;
Ir.Y:=Y1/Tav;
Irany:=Ir; end else begin
Irany:=Ir; end;
Ir.free;
end;
type
TPEx = record
X, Y : Extended;
end;
Szerintem az osztályokba ne bonyolódj bele :), ebben az esetben amúgy is teljesen felesleges. Azt sem értem, hogy miért függvényt írsz amikor eljárást kellene vagy ha már függvényt írtál akkor miért nincs Result - visszatérési értéke. Hidd el változókhoz tökéletes a rekord típus mint pl. a TPoint.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!