Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie bei TScrollBox den TScrollBar vergrößern? (https://www.delphipraxis.net/150154-wie-bei-tscrollbox-den-tscrollbar-vergroessern.html)

bodycounter 8. Apr 2010 19:53


Wie bei TScrollBox den TScrollBar vergrößern?
 
Hallo liebe Praxis.

Ich benutze gerade die TScrollBox in Delphi2009 und stoße auf ein Problem. Ich möchte mein Programm auf einem Touchscreen benutzen und brauche für dicke Finger auch einen breiten (ca. 50pixel) vertikalen Scroll Balken.

Das normale TScrollBar kann man ja ganz einfach breiter ziehen und fertig, aber die TScrollbox benutzt als Balken den TControlScrollBar.

Ich bekomme es einfach nicht hin, ihn breiter zu machen.
Kann mir einer helfen wie ich das hin bekomme?

Danke

s.h.a.r.k 8. Apr 2010 19:59

Re: Wie bei TScrollBox den TScrollBar vergrößern?
 
Du könntest die DPI-Einstellung von Windows aus nach oben schrauben. Das Problem ist, dass wahrscheinlich Windows diese Scrollbar zeichnet und die VCL hierauf keinen Einfluss hat.

// edit

Eine TScrollBar könnte man auch nutzen, wobei ich dann schnell danach schauen würde, dass ich sowas selbst schreibe.

omata 8. Apr 2010 20:07

Re: Wie bei TScrollBox den TScrollBar vergrößern?
 
Verändern der Windowseinstellung geht so...
Delphi-Quellcode:
var
  oldMetrics: NONCLIENTMETRICS;

function SetScrollbarWidth(NewWidth: Integer): Boolean;
var currentMetrics: NONCLIENTMETRICS;
begin
  Result:=false;
  oldMetrics.cbSize := SizeOf(oldMetrics);
  if SystemParametersInfo(SPI_GETNONCLIENTMETRICS, SizeOf(oldMetrics),
                          @oldMetrics, SPIF_SENDCHANGE) then
  begin
    currentMetrics:=oldMetrics;
    currentMetrics.iScrollWidth:=NewWidth;
    Result :=SystemParametersInfo(
      SPI_SETNONCLIENTMETRICS, SizeOf(currentMetrics),
      @currentMetrics, SPIF_SENDCHANGE
    );
  end;
end;

function RestoreScrollbarWidth: Boolean;
var currentMetrics: NONCLIENTMETRICS;
begin
  Result :=SystemParametersInfo(
    SPI_SETNONCLIENTMETRICS, SizeOf(oldMetrics), @oldMetrics, SPIF_SENDCHANGE
  );
end;

bodycounter 9. Apr 2010 15:51

Re: Wie bei TScrollBox den TScrollBar vergrößern?
 
DANKE.

Klappt 1A, mein Programm ist im Full Screen Mode, deshlab kein Problemm mit dem verstellen des DPI Werts.

mfg Stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:28 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