![]() |
Trackergeeignete Tabellenkomponente
Hallo,
ich suche Komponenten welche das Stringgrid ablösen. Würde gerne einen Tracker in Delphi schreiben, aber dafür muss eine gescheite Tabellenkomponente her. Die Felder müssen nur eine weitere Funktion haben: Es muss etwas blau markiert werden können (Per Code, wie z.B. : ListBox1.ItemIndex := 1;) Zur Orientierung wie ich mir die Komponente vorstelle: ![]() |
AW: Trackergeeignete Tabellenkomponente
Der Link wird abgefangen ;)
Als einfache Lösung böten sich hier ggf. Listboxen an, die man synchron scrollt. Was stört dich beim StringGrid eigentlich? |
AW: Trackergeeignete Tabellenkomponente
Zitat:
Zitat:
|
AW: Trackergeeignete Tabellenkomponente
Ich hab grad kein Delphi hier zur Hand, aber kennt die nicht auch ein OnCustomDrawCell oder OnDrawCell?
|
AW: Trackergeeignete Tabellenkomponente
jepp, und wenn man faul ist kann man ja auch Rowselect aktivieren
|
AW: Trackergeeignete Tabellenkomponente
Da die Anforderungen an eine Tracker-Tabelle ja doch recht spezifisch aber gleichzeitig sehr beschränkt sind, würde ich das einfach schnell selber programmieren... geht wahrscheinlich schneller als eine passende Komponente zu finden.
|
AW: Trackergeeignete Tabellenkomponente
Würde ich tendenziell auch so angehen, und nichtmals darüber nachdenken etwas fertiges so anzupassen (weil es in aller Regel länger dauert als Eigenbau wenn es etwas "neben" dem vorgesehenen Einsatzzweck liegt). Wenn man das Vorhaben insgesamt betrachtet, dürfte das für den TE auch eher eine Sache von nem Manntag sein, ggf. 2-4 ums rund zu machen.
|
AW: Trackergeeignete Tabellenkomponente
Guten Morgen,
VirtualStringTree, damit sollte das relativ schnell machbar sein Grüße |
AW: Trackergeeignete Tabellenkomponente
Delphi-Quellcode:
unit Unit12;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, Grids; type TForm12 = class(TForm) StringGrid1: TStringGrid; Timer1: TTimer; procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormResize(Sender: TObject); end; var Form12: TForm12; implementation uses Math; {$R *.dfm} procedure TForm12.FormCreate(Sender: TObject); begin FormResize(Self); end; procedure TForm12.FormResize(Sender: TObject); begin StringGrid1.RowCount := StringGrid1.Height div StringGrid1.DefaultRowHeight; end; procedure TForm12.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var targetGrid: TStringGrid; begin targetGrid := Sender as TStringGrid; if StrToIntDef(targetGrid.Cells[aCol, aRow], 100) > 100 then targetGrid.Canvas.Brush.Color := clRed else targetGrid.Canvas.Brush.Color := clWhite; targetGrid.Canvas.FillRect(rect); targetGrid.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, targetGrid.Cells[ACol, ARow]); end; procedure TForm12.Timer1Timer(Sender: TObject); var i,j: Integer; begin for i := StringGrid1.RowCount - 1 downto 2 do for j := 0 to StringGrid1.ColCount - 1 do StringGrid1.Cells[j,i] := StringGrid1.Cells[j,i-1]; // Neue Werte simulieren for I := 0 to StringGrid1.ColCount - 1 do StringGrid1.Cells[i, 1] := IntToStr(Random(130)); end; end. |
AW: Trackergeeignete Tabellenkomponente
@Iwo Asnet
ein Drawgrid mit Liste würde ich dem Umkopieren bevorzugen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:08 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