AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ScrollBar bei DBGrid immer anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

ScrollBar bei DBGrid immer anzeigen

Ein Thema von me2u · begonnen am 17. Apr 2007 · letzter Beitrag vom 25. Sep 2008
 
daddy

Registriert seit: 9. Sep 2005
Ort: Köln
126 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: ScrollBar bei DBGrid immer anzeigen

  Alt 20. Apr 2007, 09:39
Das Gegenteil dessen, was Du in Beitrag 2 vorgestellt hast, sähe wie folgt aus:

Delphi-Quellcode:
TVScrollDBGrid = class(TDBGrid)
private
  procedure WMNCCalcSize(var Msg: TMessage); message WM_NCCALCSIZE;
end;

procedure TVScrollDBGrid.WMNCCalcSize(var Msg: TMessage);
// Grundsätzlich den vertikalen Scrollbalken anzeigen
var Style : Integer;
begin
  Style := GetWindowLong(Handle, GWL_STYLE);
  if (Style and WS_VSCROLL) = 0 then
    SetWindowLong(Handle, GWL_STYLE, Style or WS_VScroll);
  inherited;
end; // WMNCCalcSize
Oder du bindest selber eine neue Komponente in die Komponentenpalette ein, bei der Du über die neuen Eigenschaften "AlwaysShowVScroll" und "AlwaysShowHScroll" im Objektinspektor festlegen kannst, welche der beiden Scrollbalken permanent eingeblendet werden sollen:

Delphi-Quellcode:
TFlexibleScrollDBGrid = class(TDBGrid)
private
  FAlwaysShowVScroll: Boolean;
  FAlwaysShowHScroll: Boolean;
  procedure WMNCCalcSize(var Msg: TMessage); message WM_NCCALCSIZE;
published
  property AlwaysShowVScroll: Boolean read FAlwaysShowVScroll
                                      write FAlwaysShowVScroll;
  property AlwaysShowHScroll: Boolean read FAlwaysShowHScroll
                                      write FAlwaysShowHScroll;
end;

procedure TFlexibleScrollGrid.WMNCCalcSize(var Msg: TMessage);
var Style, ScrollStyles : Integer;
begin
  // An ScrollStyles übergeben, welche Scrollbars permanent zu sehen sein sollen
  ScrollStyles := 0;
  if FAlwaysShowVScroll then ScrollStyles := WS_VSCROLL;
  if FAlwaysShowHScroll then ScrollStyles := ScrollStyles or WS_HSCROLL;
  // Prüfen, ob sie bereits angezeigt werden
  Style := GetWindowLong(Handle, GWL_STYLE);
  // Wenn nicht, dann die Anzeige aktivieren
  if (FAlwaysShowVScroll and ((Style and WS_VSCROLL) = 0))
     or (FAlwaysShowHScroll and ((Style and WS_HSCROLL) = 0))
  then SetWindowLong(Handle, GWL_STYLE, Style or ScrollStyles);
  inherited;
end; // WMNCCalcSize
MfG
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:57 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