![]() |
Komponenten zur Laufzeit zuweisen
Hallo,
ich möchte einem bereits bestehendem TField zur Laufzeit ein neues Ziel zuweisen, also etwas in der Form: Feld1 := tbl.FieldByName('integerfeld'); ShowMessage(Feld1.AsString); Das geht soweit ohne Probleme. Jetzt habe ich jedoch nur den Namen des TField's. Foglendes geht auch ohne Probleme: tempFeld := FindComponent('Feld1'); ShowMessage(tempFeld.AsString); Wie schaffe ich es "Feld1" ein FieldByName-Feld zuzuweisen? also ich steh irgendwie auf dem Schlauch. Gruß André |
Re: Komponenten zur Laufzeit zuweisen
Ungetestet:
Delphi-Quellcode:
var tempFeld: TField;
begin tempFeld := FindComponent('Feld1') as TField; if Assigned(tempFeld) then tempFeld.FieldName := 'integerfeld'; |
Re: Komponenten zur Laufzeit zuweisen
Moin moin,
leider nicht. Ich werde mal etwas konkreter. Es geht um die TkbmMemTable, diese Komponente scheint einen Bug im LoadFromStream zu haben. Gegeben: tbl: TkbmMemTable tblid: TIntegerField; str: TMemoryStream; Folgendes geht logischerweise ohne Probleme: ShowMessage(tblid.AsString); Wenn ich aber die Daten aus einem Stream lade: tbl.SaveToStream(str); str.Position := 0; tbl.LoadFromStream(str); Zeigt hinterher tblid auf 00000000..... Wenn ich jetzt tblid neu zuweise, geht alles prima: TField(tblid) := tbl.FieldByName('id'); ShowMessage(tblid.AsString); Ich möchte jetzt mit einer Schleife und FindComponent die Felder zuweisen, und das bekomme ich nicht hin. Gruß André |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 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