![]() |
Delphi-Version: XE
DB-Controls DataField über RTTI zuweisen
krieg ich einfach nicht hin.
Ich will verschiedene DB-Controls (DBEdit, DBCheckbox...) auf einem Formular dynamisch über RTTI konfigurieren. Dazu frage suche ich meine Komponente über den Namen, frage, ob die Komponente eine Property mit dem Namen DataField hat und will anschliessend den Wert des Datafields über RTTI setzen (Ebenso dann DataSource). Im Testprojekt kann ich width oder Hint setzen, aber eben nicht DataField. DataField direkt zuweisen geht aber wieder.
Code:
procedure TForm10.Button1Click(Sender: TObject);
var context: trtticontext; aType: TRttiType; aproperty: Trttiproperty; aValue: TValue; begin aType := context.GetType(TDBEdit); for aproperty in aType.GetProperties do begin if aproperty.name = 'Width' then begin aproperty.SetValue(DBEdit2, TValue.From(250)); //geht end; if aproperty.name = 'DataField' then begin aproperty.SetValue(DBEdit2, TValue.From('ARTIKEL')); // Datafield zuweisen geht nicht end; if aproperty.name = 'Hint' then begin aproperty.SetValue(DBEdit2, TValue.From('Artikel')); // Hint zuweisen geht end; end; end; procedure TForm10.Button2Click(Sender: TObject); begin DBEdit2.DataField:='Artikel'; //String direkt zuweisen funktioniert end; |
AW: DB-Controls DataField über RTTI zuweisen
Ich glaube, einen Teil des Problems hab ich schon selbst gelöst. Datafield ist kein Feld des Controls, sondern greift intern auf ein Datalink zu.
Aber wenn trotzdem jemand grad weiss, wie ich verschiedene DB-Controls dynamisch konfigurieren kann, immer her damit |
AW: DB-Controls DataField über RTTI zuweisen
Schau Dir mal Stevie's
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 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