AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Forms in Form ? Oder mehere Forms in PageControl
Thema durchsuchen
Ansicht
Themen-Optionen

Forms in Form ? Oder mehere Forms in PageControl

Ein Thema von DataCool · begonnen am 12. Jul 2004 · letzter Beitrag vom 12. Jul 2004
Antwort Antwort
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#1

Forms in Form ? Oder mehere Forms in PageControl

  Alt 12. Jul 2004, 13:06
Hi Leute,

ich bin gerade dabei meinen Messanger etwas zu erweitern ! Im Moment laufen alle Chats in einem einzelnen Fenster ich möchte dem User aber die Entscheidungs möglichkeit geben :

1. Jedes Chat-Fenster in einem seperaten Fenster zu handeln
2. Alle aktiven Chat-Fenster in einem Chat-Fenster zu sammeln z.B. mit einen Tab oder Page Control.
3. Extrem genial wäre ein fließender Wechsel, zwischen den beiden Modi, damit meine ich :
Man hat die Chat-Fenstern gerade alle einzeln und zieht dann z.B. ein Chat-Window über das "Sammel-Fenster" und das nimmt sich dieses "Sammel-Fenster" diese Form als Child und es wird als Tab im SAmmel-Fenster dargestellt.

Also Punkt 1 hab ich schon realisiert, indem bei CreateParams folgendes eingefügt habe :

Code:
procedure TfrmChatWindow.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  // dafür sorgen das die Form auch sichtbar ist, wenn die Main-Form minimiert wird
  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
  // dafür sorgen das, die Form trotz Borderstyle bsNone frei skalierbar ist
  Params.Style := (Params.Style or WS_THICKFRAME);
  Params.WndParent := GetDesktopWindow;
end;
Bei wie realisiere ich Nummer 2. ?
Kann ich Forms als Parent ein Panel oder irgentwas in der ARt geben ?

Hast jemand zu 3. ne Idde ?

Für jede Anregung würde ich mich freuen,
Danke im vorraus
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Forms in Form ? Oder mehere Forms in PageControl

  Alt 12. Jul 2004, 14:24
Hallo,

zu 2: Sollte gehen. Einfach die Parent-Property der Form entsprechend beladen mit z.B. PageControl1, Panel1 oder ListBox1 etc..

zu 3: Echte Child-Windows werden's dann zwar imo nicht mehr, aber diese Parent-Property einer Form lässt sich auch nachträglich beliebig 'umbeladen' ...und womit du z.B. deine jeweiligen Chat-Windows dann je nach Notwendigkeit in ein Sammelfenster hineinnehmen bzw. dann auch wieder hinausbefördern könntest.
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#3

Re: Forms in Form ? Oder mehere Forms in PageControl

  Alt 12. Jul 2004, 14:36
Ich kann zu Punkt 2 und 3 folgendes empfehlen:
Gib alle Komponenten des Chatfensters auf ein Panel. Brauchst du nun ein neues Chatfenster, so erstellst du zuerst ein Form, welches das Panel beinhaltet. Wird nun ein Chatfenster auf das Sammelfenster gezogen, so erstellst du ein neues TabSheet oder MDIChild, und gibst dem Panel das neu Erstellte Control als Parent und wirfst dann das alte (mittlerweile leere) Chatfenster weg.
Das Panel darf allerdings nicht automatisch vom Form des Chatfensters erstellt werden, da es sonst beim Freigeben des Chatfensters ebenfalls freigegeben wird.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: Forms in Form ? Oder mehere Forms in PageControl

  Alt 12. Jul 2004, 14:48
Hi,

danke erstmal euch beiden !
Also ich hab mittlerweile auch schon ausprobiert, einfach die Parent Property der Form auf ein Panel in der andern Form zu setzen und es funktioniert wunderbar.
Das brachte zuerst allerdings Probleme mit meiner CreateParams Methode, weil dort natürlich die ganzen "Einstellungen" s. oben nicht gesetzt werden dürfen.
Aber ich bin jetzt hingegangen und habe nachdem Create der Form mit der Tag Eigenschaft gearbeit!
Tag = 0 = seperates Fenster
Tag = 1 = Fenster im "Sammel-Fenster"

und da das CreateParams anscheinend erneut aufgerufen wird, wenn ich das Parent der Form setze funktioniert das wunderbar.

Damit habe ich allerdings noch keine Lösung zu meinem Punkt 3., aber das was Du vorschlägst alcaeus hört sich noch eleganter an.

Die Frage ist nur :
Wie erstele ich ein seperates Panel ohne Form ? Oder soll ich mir ne Dummy Form bastel wo das Panel drauf sitzt, diese Dummy-Form wird aber nie erzeugt und dann wenn ich das Panel benötige rufe ich einfach :

Code:
Var myPanel : TPanel;
begin
  myPanel := TDummyForm.ChatPanel.Create(SammelForm);
  myPanel.Parent := Entweder SingleForm oder Panel der SAmmelForm ;
  myPanel.visible := true;
end;
Mir eben eine TChatPanel-Klasse zu schreiben und die dynamisch erzeugen geht eigentlich nicht, weil auf dem Panel diverse Bitmaps und ImageLists sind, die ich nicht nachher aus Files laden möchte.

Also was tun ?
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#5

Re: Forms in Form ? Oder mehere Forms in PageControl

  Alt 12. Jul 2004, 14:52
Am besten ist, wenn du das Sammelfenster zum Verwalten der Frames verwendest. Anschließend brauchst du ja nur noch im Sammelfenster ein neues Form erstellen, dann ein neues Frame, dem Frame evtl. die Positionsangaben innerhalb des Forms mitteilen und das Parent auf das Form setzen.
Beim zurückschieben ins Sammelfenster brauchst du dann nur noch das Parent des Panels neu setzen und das Form freigeben.
Also in der Theorie hört sich das nicht schlecht an, inwiefern du dies in deiner Anwendung realisieren kannst (die TParams) weiß ich nicht...

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: Forms in Form ? Oder mehere Forms in PageControl

  Alt 12. Jul 2004, 14:55
Also Du meinst, ich soll meinen ganzen "Chat-Kram" auf einen TFrame setzen ?

Den Rest mit dem Params habe ich schon gelöst.
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#7

Re: Forms in Form ? Oder mehere Forms in PageControl

  Alt 12. Jul 2004, 14:58
Genau. Damit bist du nicht an ein Form gebunden, sondern an ein Frame, welches du auf Panels, TabSheets etc. drauflegen kannst.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: Forms in Form ? Oder mehere Forms in PageControl

  Alt 12. Jul 2004, 15:00
Ok, werd das dann gleich mal umsetzen

Mit den Frames hatte ich bis jetzt noch nicht gearbeitet, brauchte ich noch nie

Vielen Dank,

werde nachher Erfolg oder Misserfolgsmeldung geben
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#9

Re: Forms in Form ? Oder mehere Forms in PageControl

  Alt 12. Jul 2004, 15:42
Ich verwende dafür zum Bleistift das hier.

Falls du irgendwann über .Net stolpern solltest, wirst du die MagicLibrary lieben lernen.
  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 12:10 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