AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Buttongröße der Scrollbalken verändern
Thema durchsuchen
Ansicht
Themen-Optionen

Buttongröße der Scrollbalken verändern

Ein Thema von LokutusvB · begonnen am 15. Jun 2015 · letzter Beitrag vom 16. Jun 2015
Antwort Antwort
Seite 1 von 3  1 23      
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#1

Buttongröße der Scrollbalken verändern

  Alt 15. Jun 2015, 11:06
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.
MFG
LokutusvB
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#2

AW: Buttongröße der Scrollbalken verändern

  Alt 15. Jun 2015, 11:35
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (15. Jun 2015 um 11:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#3

AW: Buttongröße der Scrollbalken verändern

  Alt 15. Jun 2015, 12:38
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
  Mit Zitat antworten Zitat
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#4

AW: Buttongröße der Scrollbalken verändern

  Alt 15. Jun 2015, 13:04
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?
MFG
LokutusvB
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Buttongröße der Scrollbalken verändern

  Alt 15. Jun 2015, 13:24
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Buttongröße der Scrollbalken verändern

  Alt 15. Jun 2015, 13:50
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.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Buttongröße der Scrollbalken verändern

  Alt 15. Jun 2015, 14:30
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: Buttongröße der Scrollbalken verändern

  Alt 15. Jun 2015, 14:37
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

Geändert von EWeiss (15. Jun 2015 um 15:10 Uhr)
  Mit Zitat antworten Zitat
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#9

AW: Buttongröße der Scrollbalken verändern

  Alt 15. Jun 2015, 14:38
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ß?
MFG
LokutusvB
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Buttongröße der Scrollbalken verändern

  Alt 15. Jun 2015, 14:58
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: scrollbalken.png
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 06:27 Uhr.
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