ok war bisschen schwer beschrieben.
Hier nun ein bisschen Quellcode mit kommentaren.
Viel davon ist es, ein TcxVerticalGrid mit Daten aus einem Objekt zu füllen.
An dieser Stelle bräuchte ich halt den wirklichen Wert von TValue.
Delphi-Quellcode:
procedure TVerticalGridBinding.Load;
var
value: TcxCustomRow;
i: Integer;
SetValue: TValue;
name: string;
list: TTempList;
OBJ: TTTRttiObject;
begin
FVerticalGrid.BeginUpdate;
SetValue := TValue.FromVariant(Null);
try
for i := 0 to FVerticalGrid.Rows.Count - 1 do
begin
value := FVerticalGrid.Rows[i];
if value is TcxCategoryRow then
Continue;
name := value.name;
if name = FOBJ_ID_NAME then
Continue;
self.ModifiziereName(name);
if FID2OBJ.Count > 0 then
FID2OBJ.TryGetValue(TcxEditorRow(FVerticalGrid.RowByName(FOBJ_ID_NAME)).Properties.value, list);
// Bis hier eigentlich Code, der für das Problem unrelevant ist.
for OBJ in list.Values do
begin
if OBJ.GetPropValue(name, SetValue) then // << hier wird sich der Wert Via TValue schon besorgt. Das heißt es wird so lange wie möglich schon mit TValue gearbeitet
Break;
end;
TcxEditorRow(value).Properties.value := SetValue.AsVariant; // < diese Zeile gibt mir komische Werte bei TDateTime zurück. Dadruch kann die TcxEditorRow das nicht als Datum konvertieren.
SetValue := SetValue.FromVariant(Null);
end;
finally
FVerticalGrid.EndUpdate;
end;
end;