Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Buttongröße der Scrollbalken verändern (https://www.delphipraxis.net/185475-buttongroesse-der-scrollbalken-veraendern.html)

LokutusvB 15. Jun 2015 10:06

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? https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx

SPI_GETNONCLIENTMETRICS und SPI_SETNONCLIENTMETRICS sind es schon mal nicht. Zumindest konnte ich darunter keine entsprechende Variable finden.

himitsu 15. Jun 2015 10:35

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.

Dalai 15. Jun 2015 11:38

AW: Buttongröße der Scrollbalken verändern
 
Zitat:

Zitat von LokutusvB (Beitrag 1305106)
wie ich die Scrollbalkenbreite von Komponenten in einer Delphi-Anwendung ändern kann, konnte ich bereits herausfinden. Das lässt sich mittels SystemParametersInfo lösen.

Zitat:

Retrieves or sets the value of one of the system-wide parameters.
Mmmh... Overkill? Schlechtes Design?

MfG Dalai

LokutusvB 15. Jun 2015 12:04

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?

Luckie 15. Jun 2015 12:24

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.

Der schöne Günther 15. Jun 2015 12:50

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.

Bernhard Geyer 15. Jun 2015 13:30

AW: Buttongröße der Scrollbalken verändern
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1305134)
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.

Das mag für antike Delphi-Versionen gelten.
Mit neueren Versionen und den (eingebauten) Skinning/Theming ist sowas über das Skin/Theme relativ einfach für alle Controls der eigenen Anwendung anpassbar.

EWeiss 15. Jun 2015 13:37

AW: Buttongröße der Scrollbalken verändern
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1305134)
Es gibt dafür keine Lösung. Die Scrollbalken sind Windows-Komponenten und die kannst du nur global anpassen.

Wie Bernhard schon sagt klar geht das.

gruss

LokutusvB 15. Jun 2015 13:38

AW: Buttongröße der Scrollbalken verändern
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1305134)
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.

Genau das macht SystemParameterSInfo und genau das ist bei dieser Anwendung auch in meinem Sinne, da das Betriebssystem während der Anwendungsausführung nicht "angerührt" wird und man anders die Breite der Scrollbalken nicht ändern kann.

Und ja Luckie, das ist im Sinne das Anwenders. Kennt jemand den GET/SET Parameter, den man verwenden muß?

Der schöne Günther 15. Jun 2015 13:58

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:
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;
Heraus kommt dann so etwas: Anhang 43364


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:23 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz