Einzelnen Beitrag anzeigen

gluglu

Registriert seit: 10. Dez 2005
32 Beiträge
 
#1

DBGrid + Vertical ScrollBar

  Alt 23. Jan 2006, 10:37
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 !!
  Mit Zitat antworten Zitat