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
FieldByName 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
Fields 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"