Einzelnen Beitrag anzeigen

Benutzerbild von Mokus
Mokus

Registriert seit: 24. Sep 2013
165 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: TValue casten, kann es das von alleine ?

  Alt 2. Okt 2017, 09:48
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;
Markus
es gibt nur 10 arten von menschen !
die die binär verstehen und die die nicht. !
  Mit Zitat antworten Zitat