AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

DB-Controls DataField über RTTI zuweisen

Ein Thema von Rainer Wolff · begonnen am 3. Feb 2016 · letzter Beitrag vom 3. Feb 2016
Antwort Antwort
Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
318 Beiträge
 
Delphi 10.4 Sydney
 
#1

DB-Controls DataField über RTTI zuweisen

  Alt 3. Feb 2016, 15:03
Delphi-Version: XE
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;
  Mit Zitat antworten Zitat
Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
318 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: DB-Controls DataField über RTTI zuweisen

  Alt 3. Feb 2016, 15:11
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: DB-Controls DataField über RTTI zuweisen

  Alt 3. Feb 2016, 16:08
Schau Dir mal Stevie's Prototyp an
Markus Kinzler
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr.
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