![]() |
Topgrid Zeile markieren
Hallo und guten Tag, ich möchte in der TopGrid-Komponente die aktuelle Zeile markieren, zBSP Hintergrund rot, schrift weiß. Hat jemand einen Tip für mich. Im vorraus vielen Dank :-D :-D
|
Re: Topgrid Zeile markieren
Hi haalmu,
das musst du in nachfolgendem Event setzen, zb.:
Delphi-Quellcode:
procedure TForm1.tsGrid1GetDrawInfo(Sender: TObject; DataCol,
DataRow: Integer; var DrawInfo: TtsDrawInfo); begin // Fette Schrift auf einem roten Hintergrund DrawInfo.Color := clRed; DrawInfo.Font.Style := [fsBold]; end; Über DataCol kannst du noch festlegen, welche Spalte diese anderen Einstellungen haben soll. Gruss Gremlin |
Re: Topgrid Zeile markieren
Erstmal vielen dank für die schnelle Antwort.Ich habe unten mal ein Codeschnipzel eingestellt.
Es wird im Grid Tabellenpapier dargestellt.Was auch soweit funktioniert. Nun möchte ich aber gerne die ganze Aktuelle Zeile, nicht nur die Zelle in einer anderen Farbe darstellen. ZBsp: Text rot, Zeile weiß oder was auch immer. Vielleicht kann jemand helfen.Vielen Dank im vorraus :-D procedure TfrmMain.grdArtikelVerwaltungGetDrawInfo(Sender: TObject; DataCol: Integer; DataRow: Variant; var DrawInfo: TtsDrawInfo); begin if Odd(grdArtikelVerwaltung.DataSource.DataSet.RecNo) and (grdArtikelVerwaltung.GridStatus = grNormal) then begin DrawInfo.Color := clAqua; grdArtikelVerwaltung.FocusColor := clAqua; end else begin DrawInfo.Color := clInfoBK; grdArtikelVerwaltung.FocusColor := clInfoBK; end; end; |
Re: Topgrid Zeile markieren
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 |
Re: Topgrid Zeile markieren
Hallo Gremlin,, vielen, vielen Dank für deine Hilfe.Das war genau das, was ich brauchte. :hello: :hello: :hello: :hello:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz