Thema: Delphi Topgrid Zeile markieren

Einzelnen Beitrag anzeigen

Gremlin

Registriert seit: 18. Apr 2006
Ort: Im Süden
176 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Topgrid Zeile markieren

  Alt 25. Sep 2006, 09:03
Hi haalmu,


ich bin mir nicht vollkommen klar geworden, was du jetzt eigentlich willst. Mit dieser Erweiterung wird die aktuelle Zeile, unabhängig von deiner "Tabellenpapier"-Anzeige dargestellt. Die Anzeige der aktiven Zelle zur Bearbeitung der Daten wurde so belassen.

In diesem Beispiel hat die aktuelle Zelle einen weissen Hintergrund und blaue Schrift.


Delphi-Quellcode:
procedure TForm1.tsDBGrid1GetDrawInfo(Sender: TObject; DataCol: Integer;
  DataRow: Variant; var DrawInfo: TtsDrawInfo);
begin
  if (tsDBGrid1.CurrentDataRow = DataRow) then begin
    DrawInfo.Color := clWhite;
    DrawInfo.Font.Color := clBlue;
  end else begin
    if Odd(tsDBGrid1.DataSource.DataSet.RecNo) and (tsDBGrid1.GridStatus = grNormal) then begin
      DrawInfo.Color := clAqua;
      tsDBGrid1.FocusColor := clAqua;
    end else begin
      DrawInfo.Color := clInfoBK;
      tsDBGrid1.FocusColor := clInfoBK;
    end;
  end;
end;

procedure TForm1.tsDBGrid1RowChanged(Sender: TObject; OldRow, NewRow: Variant);
var
  iRow, iCol:integer;
begin
  iRow := tsDBGrid1.DisplayRownr[OldRow];
  for iCol := 1 to tsDBGrid1.Cols do
    tsDBGrid1.CellInvalidate(iCol, iRow);
  iRow := tsDBGrid1.DisplayRownr[NewRow];
  for iCol := 1 to tsDBGrid1.Cols do
    tsDBGrid1.CellInvalidate(iCol, iRow);
end;

Grüsse Gremlin
  Mit Zitat antworten Zitat