Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi FixedRow in TDrawGrid bleibt nicht stehen (https://www.delphipraxis.net/203849-fixedrow-tdrawgrid-bleibt-nicht-stehen.html)

Graf Gustav 31. Mär 2020 13:10

FixedRow in TDrawGrid bleibt nicht stehen
 
Wahrscheinlich finde ich zu diesem Effekt nichts, weil die Lösung zu banal ist:
Die Fixed Row in einem Drawgrid bleibt nicht stehen, sondern wird mit rausgescrollt.
Die Zellen fülle ich im OnDrawCell-Ereignis.
Die Komponente ist auch eher unspektakulär:
Delphi-Quellcode:
  object dgUmsVal: TDrawGrid
    Left = 8
    Top = 216
    Width = 929
    Height = 252
    FixedCols = 0
    TabOrder = 1
    OnDblClick = dgUmsDblClick
    OnDrawCell = dgUmsDrawCell
    ColWidths = (..)
    RowHeights = (..)
  end
Fällt dazu jemand etwas spontan ein?
VG
Reinhold

hoika 31. Mär 2020 13:11

AW: FixedRow in TDrawGrid bleibt nicht stehen
 
Hallo,
und und wo ist hier FixedRows oder wird das per Programm gesetzt?

Graf Gustav 31. Mär 2020 13:13

AW: FixedRow in TDrawGrid bleibt nicht stehen
 
Die ist standardmäßig 1 und steht deshalb nicht explizit in der dfm.

hhcm 31. Mär 2020 13:22

AW: FixedRow in TDrawGrid bleibt nicht stehen
 
Und in OnDblClick und OnDrawCell wird nich zufällig noch etwas verändert?
Ich habe schon ein paar Sachen mit dem Grid gemacht. Die FixedRow bleibt bei mir immer stehen.

Graf Gustav 5. Apr 2020 16:08

AW: FixedRow in TDrawGrid bleibt nicht stehen
 
So, Ursache gefunden.
Wenn sich die Anzahl der Listeneinträge ändert, die in dem Grid abgebildet werden,
ist zwangsläufig ein RowCount := <neue Anzahl + 1) erforderlich.
Bei mir sieht das im Prinzip so aus:
Delphi-Quellcode:
DrawGrid1.RowCount := 1;
DrawGrid1.RowCount := Succ(TList1.Count);
RowCount := 1 setzt FixedRows auf 0. (Null verschiebbare Zeilen nicht zulässig?)

Dieses 'Reset'-Vorgehen hat mir irgendwann ein Darstellungsproblem gelöst,
aber da hatte ich wahrscheinlich keine Fixed Row.
In diesem Fall müsste ich es lassen, oder auf FixedRow +1 setzen oder FixedRows neu setzen.

Danke nochmal

Uwe Raabe 5. Apr 2020 16:22

AW: FixedRow in TDrawGrid bleibt nicht stehen
 
Zitat:

Zitat von Graf Gustav (Beitrag 1461324)
RowCount := 1 setzt FixedRows auf 0. (Null verschiebbare Zeilen nicht zulässig?)

Ja, das ist sogar dokumentiert (Vcl.Grids.TCustomGrid.FixedRows):
Zitat:

Anmerkung: Ein Gitter muss mindestens eine Zeile enthalten, die verschoben werden kann. Stellen Sie FixedRows nicht auf einen größeren Wert als RowCount - 1 ein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz