AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Problem mit Scrollbox und Min. Größe eines Controls
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Scrollbox und Min. Größe eines Controls

Ein Thema von CGEu · begonnen am 20. Mai 2010 · letzter Beitrag vom 21. Mai 2010
Antwort Antwort
CGEu

Registriert seit: 20. Mai 2010
Ort: Bayern
14 Beiträge
 
Delphi 10.3 Rio
 
#1

Problem mit Scrollbox und Min. Größe eines Controls

  Alt 20. Mai 2010, 15:10
Hallo

In einer Form ist eine Scrollbox = alClient.

1. In der oberen Hälfte der Scrollbox ist ein Panel (feste Größe alTop).
2. Im der unteren Hälfe ist ein Memo, das den ganzen Bereich füllen soll, also (momentan) alClient.

Aber wird die Form verkleinert soll ab einer bestimmten Mindestgröße das Memo nicht mehr kleiner werden (sonst ist es irgendwann ganz weg), sondern statt dessen Scrollbalken angezeigt werden damit weiterhin der Inhalt des Memos zugänglich bleibt.

Geht das irgendwie über die Eigenschaften der Komponenten zu regeln, ohne viel Sourcecode zu schreiben???

Mit Memo = alClient geht es schonmal nicht. Auch Constraints.MinHeight vom Memo geht nicht, da auch in diesem Fall keine Scrollbalken kommen sondern dummerweise das ganze Form nicht mehr verkleinert werden kann.

Gruß
Christian
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

Re: Problem mit Scrollbox und Min. Größe eines Controls

  Alt 20. Mai 2010, 15:13
Hast du schon mal mit den Anchors gearbeitet? Diese kannst du ja entsprechend anpassen, wen die ScrollBox in der Größe geändert wird.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
CGEu

Registriert seit: 20. Mai 2010
Ort: Bayern
14 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Problem mit Scrollbox und Min. Größe eines Controls

  Alt 20. Mai 2010, 15:34
Zitat von s.h.a.r.k:
Hast du schon mal mit den Anchors gearbeitet? Diese kannst du ja entsprechend anpassen, wen die ScrollBox in der Größe geändert wird.
Ja, Anchors sind mir schon bekannt. Aber wie anpassen? Natürlich könnte ich beim OnResize die Größe prüfen und dann die Anchors ändern und mit SetBounds arbeiten.

Geht´s auch ohne Sourcecode?
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

Re: Problem mit Scrollbox und Min. Größe eines Controls

  Alt 20. Mai 2010, 19:54
Nicht dass auch wüsste. Align ruft genau das Verhalten hervor, welches du eben kennst und mit anchors kannst du ein "präziseres" Align nachbauen. Ich denke, dass du da selbst eingreifen musst. Wobei ich nicht weiß, wie sich die Constraints auf die Anchors auswirken...
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Problem mit Scrollbox und Min. Größe eines Controls

  Alt 20. Mai 2010, 20:52
Herzlich willkommen in der Delphi-PRAXiS, Christian!

Statt vieler Worte hier die Struktur, wie ich sie mir vorstellen könnte:

Code:
ScrollBox
  Align = alClient
  Panel
    Align = alTop
    Height = <gewünschte Höhe>
  Memo
    Align = alClient
    Constraints.MinHeight = <minimale Höhe>
    ScrollBars = ssVertical (!)
Eigentlich ist es genau das, was du auch schon beschrieben hast. Vielleicht hast du nur vergessen, die ScrollBars-Eigenschaft des Memos geeignet zu setzen. Der vertikale Scrollbalken des Memos wird natürlich nur angezeigt, wenn der Memoinhalt nicht mit der aktuellen Memogröße dargestellt werden kann.

Wenn du einen Scrollbalken in der ScrollBox haben möchtest, so musst du dem Memo eine feste Höhe geben und es ebenfalls mit Align=alTop ausrichten. Eine (sichtbare) Minimalhöhe für das Memo erreichst du dann, indem du den Wert der Eigenschaft ScrollBox.Constraints.MinHeight auf die Summe aus Panel-Höhe und Minimalhöhe des Memos setzt.

Gruß Hawkeye
  Mit Zitat antworten Zitat
CGEu

Registriert seit: 20. Mai 2010
Ort: Bayern
14 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: Problem mit Scrollbox und Min. Größe eines Controls

  Alt 21. Mai 2010, 07:20
@Hawkeye219

Danke für deine Antwort. Aber beide Vorschläge helfen mir nicht bei meinem Problem.

1. wenn das Memo auf alClient und Constraints.MinHeight gesetzt wird, hab ich zwar eine minimale Höhe des Memos erreicht, aber das Form kann dann bei erreichen dieser Minimalgröße auch nicht mehr verkleinert werden. Mit Memo.Scrollbars hat das nichts zu tun.

2. wenn das Memo auf alTop gesetzt wird, füllt es nicht den unteren Bereich komplett aus, wenn das Form vergrößert wird.


Also das Form muss ohne Einschränkungen vergrößert und verkleinert werden können. Hintergrund ist, dass ich Auflösungen von 800x600 bis 1600x1200 bedienen will. Das Memo (oder ein anderes Control in der unteren Hälfte) muss bei größeren Auflösungen immer den ganzen Bereich ausfüllen. Das Panel über dem Memo kann nicht verändert werden, da dort immer sichtbare Eingabefelder sind. Wird die Auflösung bzw. das Form zu klein brauch ich Scrollbalken (deswegen die Scrollbox) damit ich auch noch zum Memo komme.

Eigentliche ein simples Problem, aber ich finde keine vernünftige Lösung.

Gruß
Christian
  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 14:49 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