Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi [GELÖST] Forumlar in Formular (https://www.delphipraxis.net/176987-%5Bgeloest%5D-forumlar-formular.html)

Mokus 9. Okt 2013 09:53

Delphi-Version: XE2

[GELÖST] Forumlar in Formular
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hey Community,

ich bin gerade dabei, sehen was Delphi XE2 alles in derÖberfläche zustande bringen kann.
Da ist mir die Idee gekommen, ein FOrmular im Formular zu öffnen.
Vorher habe ich jedes neue Formular mit
Delphi-Quellcode:
[NAME].show
geöffnet.
Aber da öffnet sich ja ein neues Fenster...
[Siehe Anhang]
das Hauptformular is so aufgebaut, dass an der Seite knöpfe sind.
welchen knopf ich drücke, soll wo im Bild das Memo feld ist, ein Weiteres Formular öffnen.
Wäre sowas möglich?
Wie löst man sowas elegant ?
Über was genau sollte ich mich in so einem Fall informieren ?

MFG

Union 9. Okt 2013 09:59

AW: [OFFEN] Forumlar in Formular
 
Schau Dir mal die Klasse Delphi-Referenz durchsuchenTFrame an.

Lemmy 9. Okt 2013 10:00

AW: [OFFEN] Forumlar in Formular
 
Tach,

dazu kann man auch ein Frame verwenden, aber das geht auch mit einem Formular. Tausch dabei das Memo1 durch ein Panel aus, und mach das ausreichend groß (alRight):

Delphi-Quellcode:
procedure Form1.Button1Click(Sender: TObject);
begin
  if NOT Assigned(Form2) then
     Form2 := TForm2.Create(Form1);
  Form2.Parent := Form1.PanelFuerForm2;
  Form2.Align := alClient;
  FOrm2.Show;
end;
so aus dem Kopf... könnten also noch Kleinigkeiten schief gehen :-)

P.S.: Wenn Du dann noch mit dem BorderStyle usw. rumspielst, verschwindet auch der Fensterrahmen und sieht dann wirklich eingebettet aus...

Der schöne Günther 9. Okt 2013 10:08

AW: [OFFEN] Forumlar in Formular
 
Wo wäre denn der Vorteil, ein Formular da hineinzutricksen statt einen Frame zu nehmen?

Vor allem lässt sich das alles zur Designzeit schon schön machen, ich nehme immer gerne ein PageControl, packe da dann auf eine Seite das Memo, auf die andere den Frame. Beim Start des Programms werden die PageControl-Reiter für den Benutzer natürlich ausgeblendet...

Mokus 9. Okt 2013 10:30

AW: [OFFEN] Forumlar in Formular
 
Beim Starten sagt mi rnun der De-Bugger :
Eigenschaft ClientHeight existiert nicht.

hatte ne Klasse erschaffen, die vom TFrame erbt.
Dennoch wir im OI Client Height & Client Width angezeigt ...
überseh ich irgendwas ?!

MfG


[EDIT] Fehler gefunden; Hatte VLC Formular hinzugefügt, anstatt VLC Frame .... :wall: :wall:

Lemmy 9. Okt 2013 11:43

AW: [OFFEN] Forumlar in Formular
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1231320)
Wo wäre denn der Vorteil, ein Formular da hineinzutricksen statt einen Frame zu nehmen?

hm.. um mal einfach ein Stichwort fallen zu lassen: Docking...
oder wenn ich einen Teilbereich (Fenster) mal als Dialog mal als integriertes Modul (=Frame) anzeigen lassen will.

Der Codeteil stammt aus einem Projekt, begonnen mit Delphi 3, da gabs halt noch keine Frames. Und warum soll man so was umbauen? Geht mit den Frames ja nicht besser, sondern nur anders. ;-)

Grüße

Mokus 9. Okt 2013 11:56

AW: [ERWEITERT] Forumlar in Formular
 
Nochmal so ne doofe frage;

erste mal das ich mit Tframe arbeite.
muss ich diese eig it einem Free event versehen ?
.free gibt es nicht ?!

wie sieht es nun mit der Gefahr von Datenmüll aus ... ?

Der schöne Günther 9. Okt 2013 12:12

AW: [GELÖST] Forumlar in Formular
 
Ich würde einen Frame mehr als Komponente denn eigenständige Form sehen. Du erzeugst ihn doch mit einem Owner - Beispielsweise der Form die ihn aggregiert. Diese ist dann auch für die Zerstörung zuständig.

Alternativ müsste man noch BeforeDestruction überschreiben können?

Mokus 9. Okt 2013 12:42

AW: [GELÖST] Forumlar in Formular
 
Lass die Frames unter das Hauptmenü als Owner laufen,
dies würde aber erst mit dem Programm schließen Verstört, da dieses immer läuft ....


aber noch mal ne gaaaaaaanz andere frage;
wieso werden meine Frames wieder in einem Formular umgewandelt nach dem speichern.
dann haut er wieder raus, dass es eine Client Height virhanden ist,
OBWOHL es mal urspünglich als frame verzeugt worden ist ?!



bzw
wenn es ein frame bleibt, kann ich nicht wieder auf die oberfläche zugreifen ?!

[EDIT] PROBLEM GELÖST; NEUANFANG FTW [/EDIT]


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