![]() |
Hilfe - wie echte ScrollBox Breite ermitteln?
Hi,
ich steh grad mal wieder auf dem Schlauch. Ich habe eine eigene Komponente, die etwas rumzeichnet und dafür ClientRect verwendet. Liegt die nun auf einer (Tnt)ScrollBox gibt es Probleme: Der Inhalt wird abgeschnitten, da ClientRect ja nur die tatsächliche Größe des Elements bekommt. Aber bei einer Scrollbox mit Bars ist ja der interne Bereich u.U. viel größer. Frage: Wie ermittel ich das tatsächliche ClientRect einer ScrollBox (sozusagen das interne Fenster)? Gruß winkel79 |
Re: Hilfe - wie echte ScrollBox Breite ermitteln?
Was ir auf Anhieb einfällt:
Delphi-Quellcode:
Eventuell noch um die Breite des Rahmens korrigieren.
if Scrollbox1.HorzScrollBar.IsScrollBarVisible then
BoxWidth := ScrollBox1.HorzScrollBar.Range else BoxWidth := ScrollBox1.Width; Gruß Torsten |
Re: Hilfe - wie echte ScrollBox Breite ermitteln?
Hi Torsten,
danke für die schnelle Antwort. Aber wie mache ich das aus einer eigenen Komponent, die von TCustomControl ableitet? Die weiß ja nicht, worauf Sie liegt. Ich könnte höchstens auf den Parent Type prüfen und das mittels TypeCast auswerten... |
Re: Hilfe - wie echte ScrollBox Breite ermitteln?
Hallo,
so, das mit dem TypeCast geht ganz gut. Nur noch ein Problem: Zitat:
HorzScrollBar.Size oder HorzScrollBar.Margins gibt immer 0 zurück (obwohl IsScrollBarVisible true ist). Gruß winkel79 |
Re: Hilfe - wie echte ScrollBox Breite ermitteln?
Evtl. hilft GetSystemMetrics mit den Parametern SM_CXHSCROLL und Anverwandten.
|
Re: Hilfe - wie echte ScrollBox Breite ermitteln?
Danke für die hilfreichen Antworten - ein Problem weniger ;)
Ich mach es jetzt einfach ohne die Margins, es scheint so zu gehen. Die TntScrollbox liefert nur den tatsächlichen inneren Bereich. Also keine Notwendigkeit, dies zu prüfen. Gruß winkel79 |
Re: Hilfe - wie echte ScrollBox Breite ermitteln?
Du kannst auch noch in der Paint Methode der Scrollbox per ClipRect von Canvas das Sichtbare Fenster
ermitteln. Musst alledins erst Clipping auf True setzten. |
Re: Hilfe - wie echte ScrollBox Breite ermitteln?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Macht es Dir viel aus, dass mal genauer zu erklären. Offenbar hast Du es ja hinbekommen. Zitat:
Das scheint es auch nicht zu sein. Ich stehe vor folgendem Problem: Ich möchte gern ein Bitmap in eine ScrollBox laden. Und zwar so, dass der Benutzer auswählen kann, ob das Bild (proportional) die Breite der ScrollBox oder deren Höhe haben soll. Es klappt bei mir nicht. Ich möchte maximal eine haben; entweder horizontal oder vertikal oder gar keine, falls das Verhältnis des Bildes exakt dem der ScrollBox entspricht. Ich bekomme immer beide ScrollBars zu sehen. Ich habe mal den QuellCode angefügt. Vielleicht springt ja jemandem der Fehler sofort ins Auge. Gruß, Alex |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:21 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