Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi TScrollBox (https://www.delphipraxis.net/170458-tscrollbox.html)

Tim-94 18. Sep 2012 11:55

TScrollBox
 
Hey Leute,
Ich habe seit einer langen Pause mal wieder angefangen zu programmieren und stehe nun vor folgendem Problem:

Erstmal zum Verständnis:
- GroupBox mit 2 Panels (eins auf alClient, das Andere auf alRight)
- Panel 1 (das auf alClient) beinhaltet wieder 2 Panels (eins auf alClient, das Andere auf alLeft)
- Panel 2 (das auf alRight) beinhaltet aktuell nichts (hier werden zur Laufzeit diverse Checkboxen erzeugt)

In Panel 1 werden nun im darin enthaltenen Panel (das auf alLeft) diverse Panels zur Laufzeit erzeugt (diese haben nur eine Anzeigefunktion).
Das zweite, in Panel 1 befindliche Panel (das auf alClient), beinhaltet ebenfalls diverse Panels, die zur Laufzeit erzeugt werden (diese haben ebenso nur eine Anzeigefunktion).

Ich hoffe, dass es soweit nachvollziehbar ist :roll:

Da die Anzahl aller Checkboxen, sowie Panels mit Anzeigefunktion dynamisch ist, kann natürlich eine lange "Liste" entstehen, welche dann unter Umständen nicht mehr auf die "Form" passt, und somit nicht alle Komponenten sichtbar sind.

Daher wollte ich mit Hilfe einer TScrollBox arbeiten. Leider habe ich mit dieser Komponente bisher keinerlei Erfahrung.

Kann ich mein Vorhaben mit dieser Komponente überhaupt realisieren?

Vielen Dank im Voraus,
Tim :)

Uwe Raabe 18. Sep 2012 12:04

AW: TScrollBox
 
Zitat:

Zitat von Tim-94 (Beitrag 1183397)
Daher wollte ich mit Hilfe einer TScrollBox arbeiten. Leider habe ich mit dieser Komponente bisher keinerlei Erfahrung.

Kann ich mein Vorhaben mit dieser Komponente überhaupt realisieren?

Ja, das kannst du. Das Vorgehen ist eigentlich straight forward. Meld dich am besten, sobald es Probleme gibt.

Tim-94 18. Sep 2012 12:23

AW: TScrollBox
 
Vielen Dank für die schnelle Antwort. Ich habe in der Zwischenzeit schon einmal weiter
gearbeitet und die beiden "Hauptpanels" (Panel 1 & 2) in eine ScrollBox eingefügt.
Leider werden die beiden Scrollbars nicht angezeigt, obwohl die beiden Panels schon eine größere
"Height" haben, als die gesamte GroupBox.

Woran kann das liegen?

Bbommel 18. Sep 2012 12:40

AW: TScrollBox
 
Du hast aber die ScrollBox mit "alClient" in die GroupBox gelegt und legst die ganzen Panels und Unter-Panels dann in die Scrollbox, oder? Dann sollte es eigentlich gehen, habe ich hier so ähnlich im Einsatz, nur mit weniger verschachtelten Panels.

Edit:
Ach so, und wenn die Panels "alClient" und "alRight" haben, dann kannst du deren Höhe ja gar nicht mehr selbst beeinflussen, sondern die orientiert sich am übergeordneten Element. Liegt vielleicht da das Problem?

Bummi 18. Sep 2012 12:43

AW: TScrollBox
 
Delphi-Quellcode:
var
 i:Integer;
begin
 for I := 0 to 100 do
   With Tpanel.create(self) do
     begin
       Height := 20;
       Caption := 'Panel' + IntToStr(I);
       Parent := Scrollbox1;
       align := alTop;
       Top := 10000;
     end;
end;

Tim-94 18. Sep 2012 14:16

AW: TScrollBox
 
Vielen Dank für eure Hilfe, ich habe das Problem jetzt lösen können. :-D
Erzeuge die Panels "mit Anzeigefunktion" jetzt einfach direkt in der ScrollBox und nicht noch in untergeordneten Panels.

Nun noch ein kleine Frage zum Abschluss:
Wie kann ich das "OnMouseWheel"-Ereignis der ScrollBox mit der "Scrollposition" vom Mausscrollrad verknüpfen?

Uwe Raabe 18. Sep 2012 14:27

AW: TScrollBox
 
Zitat:

Zitat von Tim-94 (Beitrag 1183413)
Nun noch ein kleine Frage zum Abschluss:
Wie kann ich das "OnMouseWheel"-Ereignis der ScrollBox mit der "Scrollposition" vom Mausscrollrad verknüpfen?

Neue Frage, neuer Thread! Ist besser für die Suchfunktion.

Tim-94 18. Sep 2012 14:40

AW: TScrollBox
 
Okay, trotzdem vielen Dank, dann werde ich diesen Thread als geschlossen markieren. :)


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