![]() |
Objekt = leer?
Hi,
ich wie kann man testen ob ein Objekt leer ist?
Delphi-Quellcode:
funktioniert leider nicht, es gibt eine Exception.if CustomerPos.ID = '' then |
Re: Objekt = leer?
Was meinst du mit leer?
Delphi-Quellcode:
if not Assigned( <Object>) then ...
|
Re: Objekt = leer?
Was ist CustomerPos und was ist ID?
|
Re: Objekt = leer?
Delphi-Quellcode:
oder
if assigned(CustomerPos) then
Delphi-Quellcode:
if CustomerPos<>nil then
|
Re: Objekt = leer?
das funktioniert aber nur, wenn explizit NIL zugewiesen wurde.
z.B. mit
Delphi-Quellcode:
initialisiert (außer die "Variable" liegt zufällig in einer anderen Klasse, wo anfangs alles per Standard schon mit 0 aka NIL gefüllt ist)
X := nil;
oder per
Delphi-Quellcode:
freigegeben
FreeAndNil(X);
// bzw. X.Free; X := nil; |
Re: Objekt = leer?
Zitat:
Delphi-Quellcode:
TCustomerPositionen = class public ID: String; End; CustomerPos: TCustomerPosition; |
Re: Objekt = leer?
Dann siehe obige Antworten.
|
Re: Objekt = leer?
Was die Exception betrifft:
stell dir ein Objekt wie einen Pointer vor (ist es intern ja auch) Delphi würde quasi sowas draus machen
Code:
und wenn die Objektvariable nun auf NIL steht oder nur irgendeinen zufälligen Wert hat, dann wird praktisch auf etwas nicht Exisierendes zugegriffen und dann knallt es natürlich ganz laut. :stupid:
if CustomerPos[color=#ff0000][b]^[/b][/color].ID = '' then
|
Re: Objekt = leer?
Ich setze CustomerPos:= nil;
Teste dann per Button
Delphi-Quellcode:
und er geht in else rein, sollte doch normal nicht?
if not assigned(CustomerPos) then
Showmessage('PosAdd') else Showmessage('PosUpdate'); |
Re: Objekt = leer?
Eigentlich nicht :gruebel:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:24 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