Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi wie gibt man "nix" zurück? (https://www.delphipraxis.net/30744-wie-gibt-man-nix-zurueck.html)

Pseudemys Nelsoni 28. Sep 2004 19:13


wie gibt man "nix" zurück?
 
hoi,

ich habe eine funktion, ca so:

Delphi-Quellcode:
function bla: MyRecord
begin
  result := nix; { falls später ein fehler auftritt soll halt nix zurückgegeben werden }
  if irgendwas() then result := aRecord;
end;

ohne die erste zeile bekomme ich ja immer warnungen wie:

"ergebnis könnte undefiniert sein"

was tu ich dagen? sowas wie {$WARNINGS OFF} wollte ich eigentlich nich benutzen.

MathiasSimmack 28. Sep 2004 19:16

Re: wie gibt man "nix" zurück?
 
nil hilft nicht?

richard_boderich 28. Sep 2004 19:16

Re: wie gibt man "nix" zurück?
 
dafür gibt es den ausdruck "nil"

das ist ein zeiger der sozusagen nirgendwo hinzeigt

Pseudemys Nelsoni 28. Sep 2004 19:20

Re: wie gibt man "nix" zurück?
 
ne nil geht nicht, schon getestet


Zitat:

[Fehler] database.pas(128): Inkompatible Typen: 'TDBFileItem' und 'Pointer'

Chewie 28. Sep 2004 19:24

Re: wie gibt man "nix" zurück?
 
Wenn dein Rückgabetyp ein Record ist, dann wird auch ein Exemplar des entsprechenden Records zurückgeliefert. Entweder du stellst dein Design um oder du fügst deinem Record ein Feld hinzu, das anzeigt, dass der Record nicht gültig initialisiert ist.

richard_boderich 28. Sep 2004 19:33

Re: wie gibt man "nix" zurück?
 
probiert mal einem leeren string zu nehmen -> ''


wenn nichts passiert, weise einfach einen lehren string zu,
du muesstest auch mal posten, vom was für einem typ TDBFile ist.
so wie ich das vermute, ist es ein record, was sich aus verschiedenen datentypen zusammensetzt.
warum willst du uberhaupt nicht zuweisen.

ich wuerde es so machen, das ich den record bei programmstart mit vom mir definierten
werten füttere, und du noch ne abfrage machst, das wenn halt diese werte drinsind then do nothing

[edit=r_kerber]Doppelpost gelöscht. Mfg, r_kerber[/edit]

Pseudemys Nelsoni 28. Sep 2004 19:35

Re: wie gibt man "nix" zurück?
 
Delphi-Quellcode:
  TDBFileItem = record
    irgendwas: string[12];
    Password: TMD5Digest;
    fgjgj: string[255];
    ghgj: string[255];
  end;

so sieht er aus

[edit=r_kerber]Doppelpost gelöscht. Mfg, r_kerber[/edit]

Dani 28. Sep 2004 19:40

Re: wie gibt man "nix" zurück?
 
Hi,

Wo immer möglich würde ich persönlich anstelle von Records lieber Nachfahren von TObject benutzen , damit lässt sich imho viel besser arbeiten...

Aenogym 28. Sep 2004 19:41

Re: wie gibt man "nix" zurück?
 
hi,

ich würde dem record noch ein feld namens "error" (oder so ähnlich) hinzufügen. standardmäßig ist der wert 0. wenn ein fehler auftritt , dann ist der wert 1.
nachdem die funktion aufgerufen wurde und ein record zurückgegeben hat, überprüfst du, ob error=0. wenn nicht, dann ist das zurückgeliferte record unbrauchbar ;)

Aenogym

Pseudemys Nelsoni 28. Sep 2004 19:41

Re: wie gibt man "nix" zurück?
 
eine klasse als rückgabewert?

aeneogm: danke, mal versuchen ;)

auch an alle anderen danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:18 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz