Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Record property über Variable aufrufen (https://www.delphipraxis.net/172384-record-property-ueber-variable-aufrufen.html)

Bjoerk 31. Dez 2012 13:45

AW: Record property über Variable aufrufen
 
So wie ich die Sache sehe, ist _RAdresse doch eh unitglobal bzw. CDatabase global?

Dann halt so?

Delphi-Quellcode:
function {CDatabase.}GetSearchString(const SearchFlag: TSearchFlag): string;
begin
  case SearchFlag of
    sfVorname:
      Result := _RAdresse.Vorname;
    ..
  end;
end;
Delphi-Quellcode:
  If GetSearchString(SearchFlag) = SearchString then // Um diese Zeile geht es

Immortalem 31. Dez 2012 14:04

AW: Record property über Variable aufrufen
 
Ok es wäre eine Lösung für dieses Problem, aber wie ich bereits oben schrieb suche ich eine Lösung die aussieht wie von mir vorgeschlagen, da ich das Problem auch an anderen Stellen habe, in dem die bisherigen Lösungsansätze einfach scheitern.

Bjoerk 31. Dez 2012 14:17

AW: Record property über Variable aufrufen
 
Scherzkeks. Wenn fuctions innerhalb von Records in D5 nicht gehen, dann geht’s so halt nicht. Eine property müßte ja auch (hier) auf eine function zurückgreifen. Oder mach aus dem Record eine Klasse. Oder geh einfach Silvester feiern, so wie ich jetzt. Gruß und guten Rutsch :)

p80286 31. Dez 2012 14:46

AW: Record property über Variable aufrufen
 
Eine weitere Möglichkeit wäre es innerhalb des Records einen Pointer auf den Vergleichstring mit sich zu führen, nur ist es recht sinnvoll, diesen dann mit Hilfe von
Delphi-Quellcode:
case
zu definieren:
(Pseudocode)
Delphi-Quellcode:
Type
  tstrng50 = string[50];
  tmyrecord = name : tstrng50;
              vorname : tstrng50;
              vgl : ^tstrng50;
  end;



function Vergleiche:boolean;
begin
   case v of
     name : myrecord.vgl:=@myrecord.name;
     .....
   end;
....
   result:=myrecord.vgl^=vergleichstring;
...
Gruß und guten Rutsch
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:14 Uhr.
Seite 2 von 2     12   

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