![]() |
Fehler: Ordinaltyp erforderlich
Moin Leute :hi:
Ich habe ein Problem mit einem Speicherleck.
Delphi-Quellcode:
Ganz klar, dass das Objekt nicht wieder freigegeben wird. So habe ich das mal so umgebaut:
Seek( [ TSeek.Create( FldPK, TheTable.FldIlbSolKurz.AsString ) ] );
Delphi-Quellcode:
Sieht auf den ersten Blick korrekt aus. Nur, die aufzurufende Funktion ist so deklariert:
var
lSeek : TSeek; lSeek := TSeek.Create( FldPK, TheTable.FldIlbSolKurz.AsString ); try Seek( [ TSeek(lSeek) ] ); finally lSeek.Free; end;
Delphi-Quellcode:
Jetzt erzählt er mir andauernd "Ordinaltyp erforderlich". Ich habe schon einiges probiert. Als TObject, als Pointer.... Keine Ahnung, wie ich die Stelle jetzt umsetzen soll. Kann mir jemand von euch weiterhelfen?
function Seek( SeekFields : Array of TSeek ) : boolean;
Stefan |
Re: Fehler: Ordinaltyp erforderlich
Zitat:
Zitat:
Delphi-Quellcode:
type
TSeek = class end; function Seek(SeekFields: array of TSeek): boolean; begin end; procedure Test; var lSeek: TSeek; begin lSeek := TSeek.Create; try Seek([lSeek]); finally lSeek.Free; end; end; |
Re: Fehler: Ordinaltyp erforderlich
Danke für deine schnelle Antwort.
Die Lösung der Hammer:
Delphi-Quellcode:
Durch das "with" bekommt er irgendwie ein anderes Seek zu packen. Als ich "fIlbSol." vor das Seek gesetzt hatte, konnte er so compilieren.
if fIlbSol <> NIL then begin
with fIlbSol do lSeek := TSeek.Create( FldPK, TheTable.FldIlbSolKurz.AsString ); try fIlbSol.Seek( [ lSeek ] ); finally lSeek.Free; end; Danke, danke, danke |
Re: Fehler: Ordinaltyp erforderlich
Deswegen wird ja hier immer wieder dazu geraten, auf with zu verzichten. Das hat keinerlei Mehrwert (außer für Schreibfaule) und verursacht u.U. nur unnötige Fehler, wie Du ja selbst gerade gemerkt hast.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:51 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