![]() |
Buttongröße der Scrollbalken verändern
Moinsen,
wie ich die Scrollbalkenbreite von Komponenten in einer Delphi-Anwendung ändern kann, konnte ich bereits herausfinden. Das lässt sich mittels SystemParametersInfo lösen. Aber wie kann ich nun zusätzlich die Höhe der vertikalen und die Breite der horizontalen Buttons der Scrollbalken vergrößern? Das müßte dann ja auch mit SystemParametersInfo gehen, oder? Welche der hier gelisteten Parameter müßte ich nutzen? ![]() SPI_GETNONCLIENTMETRICS und SPI_SETNONCLIENTMETRICS sind es schon mal nicht. Zumindest konnte ich darunter keine entsprechende Variable finden. |
AW: Buttongröße der Scrollbalken verändern
PageSize in der ScrollBar Komponente?
Bei 0 ist das quadratisch und sonst versucht Windows den Balken über PageSize und die Gesamtgröße anzupassen. Der Balken ist praktisch verhältnismäßig so groß, wie der angezeigt Bereich. Min=0, Max=99, also Gesamt=100 und PageSize=10, dann ist der Balken 10% so lang, wie der Bereich zwischen den beiden äußeren Knöpfen. |
AW: Buttongröße der Scrollbalken verändern
Zitat:
Zitat:
MfG Dalai |
AW: Buttongröße der Scrollbalken verändern
Dann habe ich mich falsch ausgedrückt. Ich schreibe nicht von der ScrollBar-Komponente, sondern von den Scrollbars in ListViews, Listboxen usw. . Schon hier habe ich eine Zeit lang im Netz gesucht, um eine Möglichkeit zu finden, die Breite ändern zu können. Denn das ist laut der Infos, die man finden kann, nicht trivial, da diese Komponenten die Systemkomponenten von Windows nutzen. Deswegen denke ich mir, kann ich nun die Buttonhöhe bzw. -Breite ebenfalls SystemParameterSInfo ändern. Oder geht das anders und besser?
|
AW: Buttongröße der Scrollbalken verändern
Du löst ein lokales Problem mit einer globalen Lösung? Sehe ich das richtig? Ich weiß nicht, ob das so im Sinne des Anwenders ist, wenn auf einmal alle seine Scrollbars deinen Wünschen entsprechen. Bedenke auch, dass eventuell behinderte Anwender das Aussehen und die Bedienbarkeit von Windows ihren Bedürfnissen angepasst haben.
|
AW: Buttongröße der Scrollbalken verändern
Es gibt dafür keine Lösung. Die Scrollbalken sind Windows-Komponenten und die kannst du nur global anpassen. Außerdem dauert das, je nach offenen Fenstern, auch eine ganze Weile.
|
AW: Buttongröße der Scrollbalken verändern
Zitat:
Mit neueren Versionen und den (eingebauten) Skinning/Theming ist sowas über das Skin/Theme relativ einfach für alle Controls der eigenen Anwendung anpassbar. |
AW: Buttongröße der Scrollbalken verändern
Zitat:
gruss |
AW: Buttongröße der Scrollbalken verändern
Zitat:
Und ja Luckie, das ist im Sinne das Anwenders. Kennt jemand den GET/SET Parameter, den man verwenden muß? |
AW: Buttongröße der Scrollbalken verändern
Liste der Anhänge anzeigen (Anzahl: 1)
Ich stehe auf dem Schlauch. Ich mache das immer so:
Delphi-Quellcode:
Heraus kommt dann so etwas: Anhang 43364
var
nonClientMetrics: TNonClientMetrics; begin nonClientMetrics.cbSize := SizeOf(TNonClientMetrics); SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, @nonClientMetrics, 0); nonClientMetrics.iScrollWidth := 99; nonClientMetrics.iScrollHeight := 99; SystemParametersInfo( SPI_SETNONCLIENTMETRICS, SizeOf(nonClientMetrics), @nonClientMetrics, 0 // This parameter can be zero if you do not want to // update the user profile or broadcast the // WM_SETTINGCHANGE message ); end; |
AW: Buttongröße der Scrollbalken verändern
Zitat:
Frage mich nun warum du vorher geschrieben hast das es nicht geht. :) Aber Achtung! Das verändert alle Scrollbars Systemweit.. Solange bis du es zurücksetzt. Schlechte Lösung denk ich mal. gruss |
AW: Buttongröße der Scrollbalken verändern
So mache ich das ja auch. Aber das allein ändert nicht die Breite bzw. Höhe der Steuerungsbuttons für Hoch und Runter bzw. Rechts und Links. Und diese Buttons möchte ich von der Größe her an die Breite der Balken anpassen.
|
AW: Buttongröße der Scrollbalken verändern
Das Problem an SystemParametersInfo ist doch, dass die Änderungen alle Programme betreffen, und zwar selbst dann, wenn man sie nicht broadcasten lässt, denn spätestens, wenn ein anderes Programm einen Broadcast loslässt, werden sie für alle übernommen.
Ein solches Programm würde keine 3 Minuten auf meinem System leben. Daher würde ich gar nicht weiter versuchen, mit dieser Funktion ein Problem zu lösen, das nur für die eigene Anwendung gelten soll. MfG Dalai |
AW: Buttongröße der Scrollbalken verändern
Ja. Deswegen sagte ich doch, dass es nicht geht, das nur für eine Anwendung und nicht systemweit zu machen.
|
AW: Buttongröße der Scrollbalken verändern
Ich habe doch schon geschrieben, daß das in diesem Fall total egal ist. Ich hätte nur gern mal die Parameter gewußt. Auf was das Änderungen hat, ist mir klar.
|
AW: Buttongröße der Scrollbalken verändern
Eine Lösung wurde dir doch genannt: Skins. Du musst ja nicht das Hello Kitty Glitzer Skin nehmen.
|
AW: Buttongröße der Scrollbalken verändern
Dieses neue (eingebaute) Skinning/Theming ist doch aber für die Firemonkey-Anwendungsentwicklung. Bei VCL wäre mir das neu und ich wüßte auch gar nicht, wo ich in Delphi danach suchen sollte, das Theming der VCL-Komponenten zu ändern.
Davon abgesehen möchte ich für dieses Problem nicht an verschiedenen Stellen "schrauben". Es wird doch ganz bestimmt ein passendes Attribut für die SystemParametersInfo geben. |
AW: Buttongröße der Scrollbalken verändern
Nein, gibt es nicht. Du stlellst mit einer globalen Option immer alles global um.
Und nein, auch die VCL hat Styles, bzw. gab's das dort auch schon vor'm FMX, über Fremdkomponenten. |
AW: Buttongröße der Scrollbalken verändern
Zitat:
|
AW: Buttongröße der Scrollbalken verändern
Ich verstehe das Problem nicht. Die von Günther gezeigte Lösung ändert auch die Buttongröße, wie man unschwer auf dem Screenshot erkennen kann. Diese Variante arbeitet global, was dir laut eigener Aussage egal ist. Trotzdem benutzt du sie nicht. Der Hinweis mit den Skins/Styles geht in eine andere Richtung, um das Dilemma der globalen Lösung für ein lokales Problem zu vermeiden/umgehen.
MfG Dalai |
AW: Buttongröße der Scrollbalken verändern
Vielleicht mein er die Buttongrafiken ("Glyphs", "Symbole")? Denn diese werden dadurch nur etwas größer. Wahrscheinlich weil sie in Windows schlichtweg nicht größer vorliegen.
|
AW: Buttongröße der Scrollbalken verändern
Die Buttongrafiken:
![]() |
AW: Buttongröße der Scrollbalken verändern
Zitat:
Wenn zum Beispiel die Scrollbar 19 Pixel breit ist, dann sind die Buttons für hoch/runter bzw links/rechts zum Beispiel 15x15 Pixel. Er möchte aber, dass die Buttons 15x40 Pixel bzw. 40x15 Pixel groß sind. |
AW: Buttongröße der Scrollbalken verändern
Zitat:
Zitat:
MfG Dalai |
AW: Buttongröße der Scrollbalken verändern
Tut mir leid wegen der Umstände. :( Natürlich passt diese Methode auch die Bottongröße wie gewünscht an, sofern man sie vollständig nutzt. In meinem Qelltext hatte ich nur iScrollWidth angepasst und die iScrollHeight völlig vergessen. :wall:
|
AW: Buttongröße der Scrollbalken verändern
Liste der Anhänge anzeigen (Anzahl: 1)
Toll, jetzt hatte ich extra nochmal einen Screenshot vorbereitet und ihr ward schneller :-(
|
AW: Buttongröße der Scrollbalken verändern
Tut mir leid, Günther! :(
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:25 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