Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Prüfen ob rekord werte enthält (https://www.delphipraxis.net/33519-pruefen-ob-rekord-werte-enthaelt.html)

Pseudemys Nelsoni 8. Nov 2004 15:30


Prüfen ob rekord werte enthält
 
moin,

ich übergebe einer funktion ein rekord, der dort gefüllt wird (oder eben auch nicht), wie prüf ich nun wenn die funktion beendet ist ob der rekord irgendetwas enthält? (ohne die einzelnen membervariablen durchgucken zu müssen)

Dax 8. Nov 2004 15:34

Re: Prüfen ob rekord werte enthält
 
Wenn dein Record keine Pointer(Klasse, Longstring, Px's) enthält, könntest du den Speicherbereich Byte für Byte durchgehen, oder in Wordbereichen, DWord-, Int64-Bereichen, das bleibt dir überlassen.

BKempf 8. Nov 2004 15:36

Re: Prüfen ob rekord werte enthält
 
Delphi-Quellcode:
type
  TDatensatz=record
    bla:integer;
    blubb:word;
    DatenGueltig:boolean;
  end;
Dann DatenGueltig vor Aufruf der Funktion mit false initialisieren und in der Funktion gegebenenfalls auf true setzen.

Jens Schumann 8. Nov 2004 15:37

Re: Prüfen ob rekord werte enthält
 
Hallo,
spendiere dem Record doch ein Boolean Feld
Beispeil
Delphi-Quellcode:
TMyRecord=Record
          Wert : String;
          Ok  : Boolean;
          end;
Wenn Ok True ist, hat die Funktion eine String in Wert geschrieben.
Wenn nicht ist Ok eben False

Sharky 8. Nov 2004 15:39

Re: Prüfen ob rekord werte enthält
 
Zitat:

Zitat von Pseudemys Nelsoni
...ich übergebe einer funktion ein rekord, der dort gefüllt wird (oder eben auch nicht)...

Hai,
wenn ich das richtig lese wird ja in der Funktion entschieden ob der Record gefüllt wird oder nicht?
Dann übergebe den Record doch als VAR-Paramter an die Funktion und als Ergbniss der Funktion ein True bei gefüllt.

Delphi-Quellcode:
Function FillRecord (VAR value : TMyRecord) : Boolean;
begin
  result := False;
  if (record_wird_gefuell) then
  begin
    result := True;
    value.inhalt := 'blubb';
  end;
end;

procedure Test;
var
  foo : TMyRecord;
begin
  if (FillRecord (foo)) then
  begin
    ShowMessage ('Record ist gefüllt');
  end;
end;

Pseudemys Nelsoni 8. Nov 2004 15:44

Re: Prüfen ob rekord werte enthält
 
hallo leute,

alles gute idden, danke :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:28 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