AGB  ·  Datenschutz  ·  Impressum  







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

Fehler bei TSplitter

Ein Thema von himitsu · begonnen am 1. Jun 2010 · letzter Beitrag vom 1. Jun 2010
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.167 Beiträge
 
Delphi 12 Athens
 
#1

Fehler bei TSplitter

  Alt 1. Jun 2010, 10:12
Moin,

mach ich nur ständig etwas falsch oder schafft es BorCodeRo es einfach nicht diese richtig zu behandeln?

In meinem Manifestcreator hab ich mehrer TSplitter verbaut,
dazu wurde über die Constraints auch ein paar Minimalwerte festgelegt.

Nun beobachte ich schon länger, daß es Probleme gibt, wenn zwei oder mehrere Bereiche aufeinander treffen, wo sich die Min-Werte "behindern" und es eine nette Auswirkung ergibt.

siehe mein Manifest-Creator > der Splitter zwischen dem TabControl und dem Memo rechts

In diesem Fall z.B. MinWidth des TreeViews + MinWidth des TabControls.
Wenn man da den Splitter zwischen TabControl und Memo nach Links schiebt, bis es nicht mehr weitergeht, dann vergrößert sich rechts das Memo und schiebt sich aus dem Bild, so als würde die linke Seite des Memos versuchen weiterhin nach links zu gehn und wimit die Breite sich ändert, aber aufgrund des MinWidths dennoch am Platz verbleibt.

Da nun auch ein großer Teil des Memos die Form verlassen hat und MinWidth bei diesem natürlich über seine gesamte Breite gerechnet wird, kann man nach Rachst quasi ohne Beschränkung den Splitter verschieben.

[edit]
Wir ist auch grade wieder eingefallen, dann dieses Problem auftritt.

Beispiel:
- 3 Komponenten mit MinWidth nebeneinander
- und jeweils ein TSplitter dazwischen (also zwei davon)
- linke Komonente ist noch größer als sein MinWidth
- rechter Splitter wird nach links bewegt
- Splitter hält an, sobald MinWidth der mitterlen Komponente erreicht ist
- inter ruscht der Splitter aber um das Stück weiter, welches bei der linken Komponente möglich wäre
- allerdings verschiebt sich der linke Splitter nicht dementsprechend mit,
aber die rechte Komponente reagiert so, als wenn sich der linkte Splitter verschieben würde
und rutscht dabei aus'm Bild, da sie ja nicht verschoben wird
Miniaturansicht angehängter Grafiken
unbenannt_204.png  
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.009 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

Re: Fehler bei TSplitter

  Alt 1. Jun 2010, 11:37
Was hat dein Memo für ein Aligment bzw welche Anchors?
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.167 Beiträge
 
Delphi 12 Athens
 
#3

Re: Fehler bei TSplitter

  Alt 1. Jun 2010, 11:57
Nachdem ich alles Unwichtige rausgelöscht hab, bleibt dieses zurück:
Code:
object Panel5: TPanel
  Align = alTop
  object Panel6: TPanel
    Align = alLeft
    Constraints.MinWidth = 100
  end
  object Splitter2: TSplitter
    AutoSnap = False
    MinSize = 150
    ResizeStyle = rsUpdate
  end
  object PageControl1: TPageControl
    Align = alClient
    Constraints.MinWidth = 325
  end
  object Splitter3: TSplitter
    Align = alRight
    AutoSnap = False
    MinSize = 150
    ResizeStyle = rsUpdate
  end
  object Memo5: TMemo
    Align = alRight
    Constraints.MinWidth = 100
  end
end
Panel5 ist ein Trägerpanel
Panel6 enthielt den TreeView


[edit]
Links und rechts die Constraints (Panel6 und Memo5) sind egal
nur wenn ich das Constraints des PageControls entferne, passiert sowas nicht, allerdings möchte ich ja für dieses eine größere Breite und bei den TSplittern kann man nur für Links/Rechts, sowie Oben/Unten eine gemeinsame Breite/Höhe festegen, weswegen ich ja die Constraints gesetzt hab.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.009 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

Re: Fehler bei TSplitter

  Alt 1. Jun 2010, 15:39
Das ist nen Problem, mit dem ich mich auch schon ewigst rumgeärgert habe. Schreib dir am besten nen OnResize Event für die Splitter. Damit handelst du dir weniger bis garkeinen Ärger ein, als mit den Constraints.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Fehler bei TSplitter

  Alt 1. Jun 2010, 17:37
Splitter funktionieren nur dann richtig, wenn nur ZWEI Controls auf einem Parent-Control vorhanden sind.
Control A hat Align = left, top, right oder bottom während Control B Align=client hat.
Dazwischen liegt der Splitter.

Hat man drei Controls, dann muss man zwei benachbarte Controls auf ein Panel, Bevel, Groupbox oder anderen Container packen.
Das Blöde ist nur, dass ein Panel oder Groupbox immer einen Rahmen hat den man in diesem Fall eigentlich nicht sehen möchte.
Man bräuchte ein "Frameless Panel" nur um die daraufliegenden Controls zusammenzufassen und zu organisieren.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.167 Beiträge
 
Delphi 12 Athens
 
#6

Re: Fehler bei TSplitter

  Alt 1. Jun 2010, 18:17
Is blöde.

Och, kein paar Bevel-lose Panels hab ich im Programm schon verbaut.
(auch wenn man sie auf dem Screenshot nicht sieht )
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 23:18 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