![]() |
TStringList x64 nicht nil
List sollte eigentlich nil sein ist sie aber nicht, erst bei expliziter Zuweisung
Delphi-Quellcode:
Kennt jemand das Problem?
var
List: TstringList begin OpenFile(FileName, List); end; |
AW: TStringList x64 nicht nil
Zitat:
|
AW: TStringList x64 nicht nil
Zitat:
Hier ist meine Liste NIL auch ohne das ich extra
Delphi-Quellcode:
List := nil;
zuweise. Versuch es einfach mal mit Delphi 2010 das Problem ist mir noch nie aufgefallen und auch noch nie aufgetreten. |
AW: TStringList x64 nicht nil
Auch ältere Delphis dürften bei derartigem Code gewarnt haben, dass die Variable (möglicherweise) nicht initialisiert ist.
Grüße Dalai |
AW: TStringList x64 nicht nil
Zitat:
Gehe ich mit der Maus über die Zeile wird mir unter D2010 NIL angezeigt in Delphi 10.3 List() Und Warnungen sind nicht OFF TStringList ist doch ein Klasse und wenn diese nicht initialisiert wird sollte diese NIL sein so wie es in D2010 der Fall ist. |
AW: TStringList x64 nicht nil
Du hattest bisher einfach nur Glück. Lokale Variablen wurden - bis auf Ausnahmen - noch nie initialisiert. Dass (d)ein Delphi 2010 nicht warnt, ist vielleicht ein Bug, vielleicht auch eine Einstellungssache, vielleicht abhängig vom genauen Code.
Grüße Dalai |
AW: TStringList x64 nicht nil
Zitat:
Seltsam nur das die x86 Anwendung das klaglos hinnimmt und alles läuft hingegen die x64 nicht. Kein Beinbruch List := nil; davor zu setzen mir viel das nur auf. Muss da jetzt nicht weiter drauf rumreiten dann ist es halt so! |
AW: TStringList x64 nicht nil
Wenn Du jede Variable initialisierst weißt Du woran Du bist.
Gruß K-H |
AW: TStringList x64 nicht nil
Zitat:
Also ich denke mal das es mit Delphi nicht immer nachzuvollziehen ist was der Compiler eigentlich macht. nil oder doch nicht nil Mir ging es darum das es eine Nachweisbare Unstimmigkeit gibt. Das hat mit Glück nichts zu tun es ist immer so. Da soll dann jemand durchblicken, daher auch meine Frage. |
AW: TStringList x64 nicht nil
Zitat:
Delphi-Quellcode:
Program Project634;
{$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, System.Classes; procedure TestList; var List: TStringList; begin if List = nil then Writeln('List = nil') else Writeln('List <> nil'); end; procedure SetList(); var List: TStringList; begin List := TStringList.Create; try finally List.Free; end; end; procedure ClearList(); var List: TStringList; begin List := nil; end; procedure Main(); begin TestList; SetList; TestList; ClearList; TestList; end; begin try Main; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; Readln; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 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 by Thomas Breitkreuz