Hallo !
Möchte gerne mein Beitrag leisten zur Diskussion: DBGrid und vertical scrollbar ausschalten
(benuzte Delphi 2006 + Interbase 7.5 + TIBQuery's)
* DBGrid1 definieren
* TPanel definieren, z.B. PanelVScrollBar1, mit Grösse und Position gleich der vertikalen scrollbar des DBGrid1, und selbe Farbe wie DBGrid1. Zusätzlich Visible := True und 'bring to front' gegenüber DBGrid1 (so dass sogar während
Design-Time das Vertical Scrollbar des DBGrid1 nicht mehr zu sehen ist).
* In Form.OnPaint, oder mein Fall Frame.OnEnter :
Delphi-Quellcode:
procedure TFrame1.FrameEnter(Sender: TObject);
begin
...
CheckVScrollBar1;
...
end;
* Prozedur CheckVScrollBar1 wie folgt definieren :
Delphi-Quellcode:
procedure TFrame1.CheckVScrollBar1();
begin
with DataModule1.IBQueryCheck
do begin
SQL.Clear;
SQL.Add('
Select Count(*) from TABLE1');
Prepare;
Open;
If FieldByName('
Count').Value > Max_Rows
then
PanelVScrollBar1.Visible := False
else
PanelVScrollBar1.Visible := True;
end;
end;
Max_Rows kann entweder als globale Variable definiert werden oder direkt mit der entsprechenden Zahl ausgetausch werden, denn (...meistens) wird das DBGrid1 nicht während
run-time umdimensioniert.
* Beim einfügen, löschen, oder sogar beim editieren (falls notwendig), erneut CheckVScrollBar1 aufrufen.
... et voilà
Grüsse !!