AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TScrollBox: Range automatisch ändern??

Ein Thema von romber · begonnen am 19. Aug 2014 · letzter Beitrag vom 20. Aug 2014
Antwort Antwort
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.166 Beiträge
 
Delphi 10 Seattle Professional
 
#1

TScrollBox: Range automatisch ändern??

  Alt 19. Aug 2014, 18:38
Hallo!

Sicherlich bin ich nicht der Erste, der dieses Problem hat. Allerding habe ich im Forum nichts dazu gefunden.

Ich habe eine TScrollBox, die als Container für mehrere Grids fungiert. Die Grids werden dynamisch befült, die Höhen der Gridsd werden automatisch angepasst (AutoSize = true). Dabei ändert sich auch der Range der ScrollBox nur bei Größenänderung der sichtbaren Grids. Liegt das geänderte Grid unterhalb des sichtbaren Bereichs der ScrollBox, bleibt der Range der ScrollBox ungeändert. Erst wenn man nach unten scrollt und der obere Rand des Grids sichtbar wird ändert sich der Range.

Wie bringe ich der ScrollBox bei, auch auf die Veränderungen der unsichtbaren Komponenten zu reagieren?
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.166 Beiträge
 
Delphi 10 Seattle Professional
 
#2

AW: TScrollBox: Range automatisch ändern??

  Alt 20. Aug 2014, 09:37
Hat keiner Ideen?
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#3

AW: TScrollBox: Range automatisch ändern??

  Alt 20. Aug 2014, 09:58
Wenn ich dynamische Komponenten in einer Scrollbox unterbringe, verwende ich dazu immer ein Panel, das seine Größe nach den Komponenten richtet und direkt auf der Scrollbox liegt. Natürlich muß ich im Code jeweils vor dem Zeichnen bzw. Platzieren ausrechnen, wie hoch und wie breit das Panel sein muß, um alles aufzunehmen.

Da sich die Breite eines Stringgrids nicht automatisch dem Inhalt der breitesten Textzeile anpaßt, mußt du sowieso Berechnungen anstellen. Am Ende hast du Breite und Höhe des Stringgrids. Danach platzierst du das nächste Stringgrid unter dem ersten usw. Der Top-Wert des letzten Stringgrids plus seines Heightwertes plus sagen wir mal 30 Pixel Rand ergibt dann die Höhe des Panels. Ebenso richtest du die Breite des Panels, das selbstbverständlich immer auf der Position 0/0 liegt, nach der Breite des breitesten Stringgrids plus Rand rechts und links.
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:07 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