Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Im DBGrid auf Kommando bestimmte Felder färben

  Alt 4. Jan 2006, 06:57
Hai rascalpo,


Zitat von rascalpo:
Delphi-Quellcode:
  if (Zeiten.FieldByName(IntToStr(DataCol)).AsVariant = DBZeitGrid.SelectedField.Value) then begin
  ... // ^da
  end;
end;
Das kann so nicht gehen. Mit Delphi-Referenz durchsuchenFieldByName kannst Du über den Feldnamen auf den Inhalt zugreifen. Du übergibst aber nicht den Namen des Feldes sondern seine Nummer. Du müsstest also nicht mit FieldByName sondern direkt mit den Delphi-Referenz durchsuchenFields arbeiten.

Ungetestet könnte das dann so aussehen:
Delphi-Quellcode:
procedure TDemoForm.DBAllGridsDrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: integer; Column: TColumn; State: TGridDrawState);
begin
  with (Sender as TDBGrid) do
  begin
    if (DataSource.DataSet.Fields[DataCol].AsVariant = SelectedField.Value) then
    begin
      //
    end;
  end;
end;
Oder aber, wenn Du den Feldnamen verwenden möchtest dann so:
Delphi-Quellcode:
procedure TDemoForm.DBAllGridsDrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: integer; Column: TColumn; State: TGridDrawState);
begin
  with (Sender as TDBGrid) do
  begin
    if (DataSource.DataSet.FieldByName(Column.FieldName).AsVariant = SelectedField.Value) then
    begin
      //
    end;
  end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat