AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

problem mit manual dock

Ein Thema von hyype · begonnen am 17. Okt 2011 · letzter Beitrag vom 28. Okt 2011
Antwort Antwort
hyype

Registriert seit: 5. Nov 2008
97 Beiträge
 
Delphi XE2 Professional
 
#1

AW: problem mit manual dock

  Alt 17. Okt 2011, 09:09
das ist ja kein problem und dann?
ich kann nicht einfach width setzen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: problem mit manual dock

  Alt 17. Okt 2011, 09:36
Zitat:
er liegt nicht auf dem Panel.
Doch, er muß genau dort liegen, also auf der selben ebene, wie die Formulare.


Wie suchst du denn den Splitter?
FindComponent und Co suchen im angegebenen Owner nach den ihnen gehörenden Komponenten.
Du mußt aber nicht über den Owner (TComponent.Components), sondern über den Parent (TComponent.Controls) suchen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.361 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: problem mit manual dock

  Alt 17. Okt 2011, 10:17
das ist ja kein problem und dann?
ich kann nicht einfach width setzen
Sorry, war Quatsch

DockPanel.DockManager.SaveToStream(AStream)?

Frank
Frank Reim
  Mit Zitat antworten Zitat
hyype

Registriert seit: 5. Nov 2008
97 Beiträge
 
Delphi XE2 Professional
 
#4

AW: problem mit manual dock

  Alt 17. Okt 2011, 11:11
@himitsu:
ich hatte tatsächlich die components durchsucht
jetzt habe ich es so:
Delphi-Quellcode:
  for i := 0 to self.ControlCount - 1 do
    if self.Controls[i] is TSplitter then
      showmessage('1');
  for i := 0 to self.componentcount - 1 do
    if self.components[i] is TSplitter then
      showmessage('2');
  for i := 0 to panel1.controlcount - 1 do
    if panel1.Controls[i] is TSplitter then
      showmessage('3');
  for i := 0 to panel1.componentcount - 1 do
    if panel1.components[i] is TSplitter then
      showmessage('4');
  for i := 0 to testform1.ControlCount - 1 do
    if testform1.Controls[i] is TSplitter then
      showmessage('5');
  for i := 0 to testform1.componentcount - 1 do
    if testform1.components[i] is TSplitter then
      showmessage('6');
  for i := 0 to testform2.controlcount - 1 do
    if testform2.Controls[i] is TSplitter then
      showmessage('7');
  for i := 0 to testform2.componentcount - 1 do
    if testform2.components[i] is TSplitter then
      showmessage('8');
self ist das hauptformular mit dem panel, testform1 & 2 sind die, die ans panel angedockt werden.
ich bekomme keine ausgabe.. aber das teil, was da zwischen den formularen entsteht, verhält sich genau wie ein tsplitter..
edit: habe jetzt mal von allen controls/components den classname ausgeben lassen - da liegt nichts, was ich nicht hingelegt habe...

@dataspider:
du meinst, ich solle die aktuelle konfiguration per savetostream in nen stream packen und dann wieder aus dem stream rausladen? hmm..
ich hätte halt gedacht, dass es doch irgendwie per code möglich sein müsste, das ganze so einzustellen, als würde ich als user den splitter ziehen...

Geändert von hyype (17. Okt 2011 um 11:42 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.361 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: problem mit manual dock

  Alt 17. Okt 2011, 12:07
du meinst, ich solle die aktuelle konfiguration per savetostream in nen stream packen und dann wieder aus dem stream rausladen? hmm..
ich hätte halt gedacht, dass es doch irgendwie per code möglich sein müsste, das ganze so einzustellen, als würde ich als user den splitter ziehen...
Ich muß gestehen, dass sich mir die Zusammenhänge auch nicht ganz erschließen.
Laut Hilfe sollte LRDockWidth eigentlich hilfreich sein, ist es aber nicht.

Wahrscheinlich läuft alles über den DockManager bzw. den DockTree.
Ein Splitter wird auch nicht erstellt.

Ich wüßte jetzt keine andere Lösung.

Frank
Frank Reim
  Mit Zitat antworten Zitat
hyype

Registriert seit: 5. Nov 2008
97 Beiträge
 
Delphi XE2 Professional
 
#6

AW: problem mit manual dock

  Alt 17. Okt 2011, 13:33
ich probiers jetzt mit nem splitter und 2 panels auf meinem eigentlichen panel...
wie ich panel-in-panel-konstrukte liebe ^^
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: problem mit manual dock

  Alt 17. Okt 2011, 13:50
Und was sagt Folgendes?
Delphi-Quellcode:
for i := 0 to TestForm1.Parent.ControlCount - 1 do
  if TestForm1.Parent.Controls[i] is TSplitter then
    ShowMessage('9');
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: problem mit manual dock

  Alt 17. Okt 2011, 15:13
Mein Ansatz wäre auf ManualDock zu verzichten, den Forms das Panel als Parent zuzuweisen, die Alignments zu setzen, gegf. einen Splitter manuell dazwischen zu erzeugen, dann kanst Du die Brieten setzen wie Du lustig bist. Diese "Dockdasformauf einem Parent" verwenden wir üblicherweise in einem überschriebenen Konstruktor unserer Formtemplates, der Aufruf wird hierdurch auf eine Minimum an Code eingedampft.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
hyype

Registriert seit: 5. Nov 2008
97 Beiträge
 
Delphi XE2 Professional
 
#9

AW: problem mit manual dock

  Alt 17. Okt 2011, 16:13
@himitsu:
nix :/

@bummi:
wenn man die formulare an das panel andockt, hat der user später die möglichkeit, sie dort wieder abzudocken und wenn er mehrere monitore hat, kann er das ausgedockte form dann auf nen anderen monitor ziehen. das ist schon ziemlich praktisch.

Geändert von hyype (17. Okt 2011 um 16:16 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 09:12 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