Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Zugriff auf Variablen im Record wie FindComponent (https://www.delphipraxis.net/49289-zugriff-auf-variablen-im-record-wie-findcomponent.html)

s.h.a.r.k 8. Jul 2005 12:59


Zugriff auf Variablen im Record wie FindComponent
 
Hallo!

Udn zwar hab ich grad ein mehr oder weniger riesen Problem: Und zwar hab ich ein Record, der ca 100 Datensätze umfasst - brauch ich leider. Jetzt würde ich nur gerne wissen, ob es eine Funktion gibt, die wie FindComponent für eine Komponentensuche auch für Records funktioniert?!

Wenn nicht?! Wie kann ich sowas selber verwirklichen, ohne dass ich meinen kompletten Record abändere?!

Vielen Dank schon mal im Vorraus!

mfg shark

barf00s 8. Jul 2005 13:01

Re: Zugriff auf Variablen im Record wie FindComponent
 
kA ob ich dich richtig verstanden hab, aber dein record landet sicher inner TList oder sowas, ... DER kannst dann ne suchen funktion verpassen, in der alle items durchsuchst und dann bei einer übereinstimmung (je nachdem nach selchem feld des records du suchst) das dingen zurückgegeben wird

s.h.a.r.k 8. Jul 2005 13:15

Re: Zugriff auf Variablen im Record wie FindComponent
 
hm... eigentlich ist es nur ein Record und kein TList-Objekt. Es schaut jedenfalls so aus:
Delphi-Quellcode:
type
  TTestRecord = record
    TestString: String;
    TestInteger: Integer;
    TestBoolean: Boolean;
    { etc. }       
  end;
Und in einer anderen Procedure mag ich dann praktisch eine Funktion haben, die wie folgt funktionieren sollte:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  TestRecordVar = 'TestString', 'TestInteger', 'TestBoolean';
var
  i: Integer;
begin
  i := FindRecordVariable(TestRecordVar[1]);
end;
da es nämlich so viel Datensätze sind, mach ich lieber ein Array mit allen Namen und geh das dann die Reihe nach durch -> Schleife. Und muss somit ich nicht immer 100 Datensätze abklappern! Verstehst du was ich meine?!

mfg shark

barf00s 8. Jul 2005 13:16

Re: Zugriff auf Variablen im Record wie FindComponent
 
sowas geht nich...

im .NET schon

s.h.a.r.k 8. Jul 2005 13:18

Re: Zugriff auf Variablen im Record wie FindComponent
 
[edit]sorry - kein so toller beitrag von mir. nur des ganz regt mich jetzt etwas auf... da muss es doch ne lösung zu geben oder?![/edit]

barf00s 8. Jul 2005 13:20

Re: Zugriff auf Variablen im Record wie FindComponent
 
Delphi-Quellcode:
type
  PRecord = ^TRecord;
  TRecord = record
    Name: shortstring;
    Plz: cardinal;
  end;

var
  xListe: TList; // oder von mir aus auchn olles array (TList is auch nurn array-wrapper fallsdes noch nich wusstest)

procedure AddRecord(xRecord: TRecord);
begin
  xListe.Add(@xRecord);
end;

function SucheRecord(const Name: string): TRecord;
var
  iIndex: integer;

begin
  for iIndex := 0 to xListe.Count - 1 do
    if PRecord(xListe[iIndex])^.Name = Name then begin
      Result := PRecord(xListe[iIndex])^;
      Exit;
    end;
end;

s.h.a.r.k 8. Jul 2005 13:22

Re: Zugriff auf Variablen im Record wie FindComponent
 
und das geht dann auch in delphi 7 oder?!?

Robert_G 8. Jul 2005 13:23

Re: Zugriff auf Variablen im Record wie FindComponent
 
Zitat:

Zitat von barf00s
sowas geht nich...
im .NET schon

Shark, bist du VB'ler, einfach nur faul oder willst du 10GHz CPUs verkaufen? :gruebel:

barf00s 8. Jul 2005 13:23

Re: Zugriff auf Variablen im Record wie FindComponent
 
freilich

< D8 ist sowieso immer die beste wahl - .NET is nich so der hit - aber das ja ne andere sache

Flocke 8. Jul 2005 13:24

Re: Zugriff auf Variablen im Record wie FindComponent
 
@shark: dein Problem klingt eher danach, dass du nicht wirklich ein record brauchst... Kannst du die Daten nicht z.B. in 'ner TStringList abspeichern (mit Name=Wert)?


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