![]() |
Erste sichtbare Spalte in einem DBGrid
Moin, moin!
Wie ermittle ich den Index der ersten sichtbaren Spalte in einem DBGrid, nach der Verschiebung der horizontalen Scrollbar? ![]() ![]() Viele Grüße Markus |
Re: Erste sichtbare Spalte in einem DBGrid
Die saubere Lösung wäre eine eigene Komponente von TDBGrid abzuleiten und die Properties LeftCol und FixedCols als readonly sichtbar zu machen.
Die quick&dirty Methode sieht so aus:
Delphi-Quellcode:
var
Idx: Integer; // erster sichtbarer Spaltenindex begin Idx := TStringGrid(DBGrid1).LeftCol - TStringGrid(DBGrid1).FixedCols; |
Re: Erste sichtbare Spalte in einem DBGrid
Moin, moin!
Ich habe Ähnliches versucht mit „typecast“ des TDBGrids in den TCustomDBGrid und TCustomGrid. Beide sind Vorfahren des TDBGrids. Meine Versuche sind leider erfolglos geblieben. Das was mit direkten Vorfahren nicht funktionierte, funktioniert nun mit dem „typecast“ in einen Verwandten, den TStringGrid. Eigentlich habe ich das noch nicht so richtig geschnallt, wieso. Der TStringGrid steht in keinem Verhältnis zu TDBGrid bis auf das, das die beiden einen gemeinsamen Vorfahren haben (TCustomGrid). Danke! Viele Grüße Markus |
Re: Erste sichtbare Spalte in einem DBGrid
Beide stammen von TCustomGrid ab. Dort sind die entsprechenden Properties allerdings noch protected, deshalb funktioniert der Typecast nur mit einer "höheren" Klasse, wo die Properties dann als public deklariert sind.
Wie gesagt, es wäre "sauberer" eine eigene Klasse von TDBGrid oder TCustomDBGrid abzuleiten, um dort selbst die Properties auf public zu setzen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:55 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