AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi StringGrid: Breite der vertikalen Scrollbar ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

StringGrid: Breite der vertikalen Scrollbar ermitteln

Ein Thema von Helmi · begonnen am 23. Feb 2015 · letzter Beitrag vom 23. Feb 2015
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#1

StringGrid: Breite der vertikalen Scrollbar ermitteln

  Alt 23. Feb 2015, 12:58
Hallo,

gibt es die Möglichkeit die Breite der vertikalen Scrollbar eines StringGrid zu ermitteln?

Ich hatte gehofft, dass sich ClientWidth dadurch ändert, aber leider bleibt der Wert mit/ohne Scrollbar gleich

Was will ich eigentlich tun?
(für manche eine schwierige Frage)

Wenn die vertikale Scrollbar sichtbar ist, dann möchte ich die Breiten der Spalten des StringGrids reduzieren.

Ob eine Scrollbar sichtbar ist, mach ich mit diesem Code:
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!');
(gefunden bei den Schweizern)
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: StringGrid: Breite der vertikalen Scrollbar ermitteln

  Alt 23. Feb 2015, 13:04
Schau Dir mal TGridDrawInfo an; vllt ersparst Du Dir dann das Gefummel mit den Scrollbars.
Besonders TGridDrawInfo.Horz.LastFullVisibleCell u dgl ...
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: StringGrid: Breite der vertikalen Scrollbar ermitteln

  Alt 23. Feb 2015, 13:06
Versuch es mal mit GetSystemMetrics:
Zitat:
SM_CXVSCROLL

The width of a vertical scroll bar, in pixels.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#4

AW: StringGrid: Breite der vertikalen Scrollbar ermitteln

  Alt 23. Feb 2015, 13:07
Schau Dir mal TGridDrawInfo an; vllt ersparst Du Dir dann das Gefummel mit den Scrollbars.
Besonders TGridDrawInfo.Horz.LastFullVisibleCell u dgl ...
klingt interessant - werd ich mir mal zu Gemüte führen

hab aber bei den Schweizern noch einen Code für die Breite/Höhe gefunden link
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: StringGrid: Breite der vertikalen Scrollbar ermitteln

  Alt 23. Feb 2015, 13:22
Viele Wege führen zum Kompilat.

Was mich bei der Scrollbar-Überlegung stört ist, daß die Scrollbars nicht Teil des Problems sind, sondern nur ein Symptom.

Das Problem ist ein zu breites Grid, das angepaßt werden muß.

Wenn aus diversen Gründen grundsätzlich keine Scrollbars angezeigt würden (Optionen verändert etc.), dann hättest Du keine Scrollbars, aber das Grid wäre immer noch zu breit.
Über die GridDrawInfo und LeftCol weißt Du alles, was Du wissen mußt:
Delphi-Quellcode:
var
  DrawInfo: TGridDrawInfo;
begin
  grdDemo.CalcDrawInfo(DrawInfo);
Nr.1 Delphi-Tool: [F7]

Geändert von ConnorMcLeod (23. Feb 2015 um 13:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#6

AW: StringGrid: Breite der vertikalen Scrollbar ermitteln

  Alt 23. Feb 2015, 13:29
Viele Wege führen zum Kompilat.

Was mich bei der Scrollbar-Überlegung stört ist, daß die Scrollbars nicht Teil des Problems sind, sondern nur ein Symptom.

Das Problem ist ein zu breites Grid, das angepaßt werden muß.

Wenn aus diversen Gründen grundsätzlich keine Scrollbars angezeigt würden (Optionen verändert etc.), dann hättest Du keine Scrollbars, aber das Grid wäre immer noch zu breit.
Über die GridDrawInfo und LeftCol weißt Du alles, was Du wissen mußt:
Delphi-Quellcode:
var
  DrawInfo: TGridDrawInfo;
begin
  grdDemo.CalcDrawInfo(DrawInfo);
bei mir gibt es CalcDrawInfo nicht
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: StringGrid: Breite der vertikalen Scrollbar ermitteln

  Alt 23. Feb 2015, 13:32
Ich habe D2010, da heißt es in Grids.pas / Zeile 2465:

procedure TCustomGrid.CalcDrawInfo(var DrawInfo: TGridDrawInfo);
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#8

AW: StringGrid: Breite der vertikalen Scrollbar ermitteln

  Alt 23. Feb 2015, 13:49
in XE2 ist CalcDrawInfo protected
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: StringGrid: Breite der vertikalen Scrollbar ermitteln

  Alt 23. Feb 2015, 13:56
Naja, da kommt man ja noch drum herum.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#10

AW: StringGrid: Breite der vertikalen Scrollbar ermitteln

  Alt 23. Feb 2015, 13:58
Naja, da kommt man ja noch drum herum.
verrätst du mir auch wie?
(habs ned so mit knacken )
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 09:13 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