![]() |
Scrollbar / Scrollbars v. TStringGrid / StringGrid sichtbar?
Hallo Delphifreunde!
Über einen Tag suchte ich im Internet, wie man obiges feststellt. Ich fand auf keiner (!) deutschsprachigen Seite eine befriedigende Lösung dafür. Die Bastellösungen dazu erwiesen sich letztlich alle als untauglich. Das Problem ist wohl, daß das Zu-/Abschalten der Scrollbars leider nicht als Ereignisse oder wenigstens zur Laufzeit (und damit nicht im Objektinspektor voreinstellbare) abrufbare Eigenschaften verfügbar ist. Kurzum, die Lösung, die das wirklich zu bieten bzw. umzusetzen scheint (meine ersten diesbezüglichen Erfahrungen sind positiv, deshalb hier die Veröffentlichung), findet sich ![]()
Delphi-Quellcode:
if (GetWindowlong(Stringgrid1.Handle, GWL_STYLE) and WS_VSCROLL) <> 0 then
ShowMessage('Vertical scrollbar is visible!'); if (GetWindowlong(Stringgrid1.Handle, GWL_STYLE) and WS_HSCROLL) <> 0 then ShowMessage('Horizontal scrollbar is visible!'); |
Re: Scrollbar / Scrollbars v. TStringGrid / StringGrid sicht
Zitat:
![]() |
Re: Scrollbar / Scrollbars v. TStringGrid / StringGrid sicht
Zitat:
Das eidgenössische Delphiforum konnte mir jedenfalls auch nicht weiterhelfen (nur suchend, nicht selbst fragend). Außerdem hatte da wohl einer vom anderen kopiert?! Egal, jetzt ist es auch in diesem Forum verewigt, was hoffentlich niemanden erzürnt. |
Re: Scrollbar / Scrollbars v. TStringGrid / StringGrid sicht
Weil es an dieser Stelle am besten paßt, erlaube ich mir, noch etwas zu ergänzen:
Compilate von Delphi 2 und 3 prüfen bereits vor oder spätestens zum Begin der Prozedur FormCreate, ob die Scrollbalken existieren, und in derselben Prozedur stehen die richtigen Werte bereits zur Verfügung. Ab Delphi 4 scheint es leider generell nicht mehr so zu sein, jedenfalls beobachtete ich es bei Delphi 4, 7 und Turbo (Warum solch ein Rückschritt?? Schade!). Dort wird in den FormCreate-Prozduren unabhängig von der tatsächlichen Existenz der Scrollbalken ein vorhanden zurückgeliefert, was die Programmierung ggf. erschwert. Wer die Scrollbalken - leider wiederum unabhängig von deren tatsächlicher Existenz - im FormCreate lieber in den Nichtexistenzstatus schalten möchte , der füge in FormCreate
Delphi-Quellcode:
hinzu.
SetWindowlong(StringGrid1.Handle,GWL_STYLE,GetWindowlong(StringGrid1.Handle,GWL_STYLE) and not WS_HSCROLL);
SetWindowlong(StringGrid1.Handle,GWL_STYLE,GetWindowlong(StringGrid1.Handle,GWL_STYLE) and not WS_VSCROLL) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 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