Autor Beitrag
MIK
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Do 13.04.06 14:46 
Hallo!

Ich bin neu hier und habe ein kleineres Problem.

Ich hab ein Formular mit einer TTreeView Komponente, die mein Menü darstellt. Im Moment wird bei der Auswahl eines Punktes ein neues Formular (Modal) geöffnet.

Ich würde aber gerne ein Panel rechts neben meiner Treeview Komponente platzieren, auf welchem meine Formulare erstellt werden.

Wenn ich jetzt allerdings ein Formular auf meinem Panel erstelle kann ich es in meinem Panel so verschieben, dass es im Nirvana verschwindet. Ich möchte aber, dass mein Panel die Fläche darstellt, in der sich das Formular bewegen lässt. dh der Rahmen des Panels darf vom Formular nicht überquert werden.

Ich wäre für jeden Lösungsvorschlag dankbar!
der Berliner
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 417

Win Xp Home
delphi 2005
BeitragVerfasst: Do 13.04.06 14:55 
Hallo
Setzt doch im OI Aligment auf allClient.
gruß

_________________
[b]Ich weiß nicht immer, wovon ich rede. Aber ich weiß, dass ich recht habe.[b]
MIK Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Do 13.04.06 15:34 
Ich habe das versucht, doch leider ist das nicht das was ich wollte!

Nochmals:

Das Programm hat einen ähnlichen Aufbau wie eine Standardwebseite: Links das Menü und rechts der Darstellungsbereich. Der "Darstellungsbereich" ist jetzt ein leeres Panel. Auf diesem Panel Soll ein Formular erstellt werden. (Muss nicht auf dem Panel sein aber ich dachte mir, dass ist am einfachsten) Jedenfalls möchte ich ein Formular in meinem Formular öffnen. Nicht erstellen sondern nur öffnen. Das neue Formular darf jetzt nicht in den Menübereich bzw. über den Rand meines Hauptformulars verschoben werden bzw. werden können.

Ich dachte mir ein Panel eignet sich sehr gut für eine solche Aufgabe. !?!?! Keine Ahnung ob dem so ist. Ich habe auch schon gehört, das MDI eine Möglichkeit wäre. Leider habe ich noch keine Beispiele für MDI gefunden bzw. kann ich das ganze nicht ganz nachvollziehen. In meinen Delphi Bücher ist dieses Thema auch recht sparsam beschrieben.
Alpha_Wolf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 297

Ubuntu, Win XP, Win Vista
C#, Delphi 6 Prof, Delphi 2007 Prof, Java
BeitragVerfasst: Do 13.04.06 15:35 
Als kleiner Vorschlag würde für dich auch eine MDI-Anwendung.

Oder du überprüfst einfach im MouseMove deine Mauskoordinaten und vergleichs sie mit dem Panel Rand.

Ist allerdings nich wirklich sauber sowas.

_________________
Diskutiere nie mit einem Irren - er zieht dich auf sein Niveau und schlägt dich mit seiner Erfahrung.
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Do 13.04.06 18:34 
alternativ kannst du auch dem parent deiners formulares, das dann erscheinne soll das panel zuweisen.
so in der art:
ausblenden Delphi-Quelltext
1:
meinformular.parent := meinpanel;					

_________________
In the beginning was the word.
And the word was content-type: text/plain.
MIK Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Fr 14.04.06 14:10 
Hallo!

Danke für eure Antworten. Ich habe beides schon versucht. MDI und Parent auf Panel1 zu setzen.

MDI:
Bei dieser Variante kann ich ein Formular in mein Hauptformular einbetten. (ich hoffe ich habe das richtig verstanden). Wenn ich jetzt Compiliere ist mein Hauptformular komplett mit einem "MDI-Formular" ausgefüllt. Somit ist das wohl nichts für mich. Ich möchte ja am linken Rand meines Hauptformulars ein TTreeview platzieren mit Menüpunkten (Mitarbeiter anzeigen, Mitarbeiter bearbeiten, etc.). Jetzt möchte ich für die einzelnen Menüpunkte natürlich unterschiedliche Formulare verwenden.

Was ich so über MDI gelesen habe eignet sich wohl besser für Texteditoren, da sich die neuen Formulare nicht von einander unterscheiden.


PARENT:
Ich habe ein Formular entworfen und mit

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
Form2.ShowModal;
Form2.Parent:=Panel1;

bzw.

Form2.Parent:=Panel1;
Form2.ShowModal;


aufgerufen.

Leider führt das ganze zu einem Programmabsturz.



Vielleicht könnt ihr mir nochmal helfen. Es ist eine Weile her, dass ich viel mit Delphi gearbeitet habe bzw. arbeiten musste. (Delphi wurde 5 Jahre bei uns in der Schule unterrichtet.) Leider haben wir wenig im Bereicht Programmdesign bzw. Programmaufbau gemacht.

Jetzt würde ich das brauchen.
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Fr 14.04.06 14:41 
Hallo,

müssen es denn Formulare zur jeweiligen Bearbeitungsoberfläche sein?
Schau Dir doch mal das PageControl an, darin erstellst Du dann TabSheets auf denen dann die Bearbeitungselemente plaziert werden können.

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
Alpha_Wolf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 297

Ubuntu, Win XP, Win Vista
C#, Delphi 6 Prof, Delphi 2007 Prof, Java
BeitragVerfasst: Fr 14.04.06 17:02 
user profile iconMIK hat folgendes geschrieben:
MDI:
Bei dieser Variante kann ich ein Formular in mein Hauptformular einbetten. (ich hoffe ich habe das richtig verstanden). Wenn ich jetzt Compiliere ist mein Hauptformular komplett mit einem "MDI-Formular" ausgefüllt. Somit ist das wohl nichts für mich. Ich möchte ja am linken Rand meines Hauptformulars ein TTreeview platzieren mit Menüpunkten (Mitarbeiter anzeigen, Mitarbeiter bearbeiten, etc.). Jetzt möchte ich für die einzelnen Menüpunkte natürlich unterschiedliche Formulare verwenden.

Was ich so über MDI gelesen habe eignet sich wohl besser für Texteditoren, da sich die neuen Formulare nicht von einander unterscheiden.

Das ist so nicht richtig.

Mit einer MDI Anwendung kannst du ganz normal eine Hauptform aufbauen mit links n TreeView und rechts den Formularen..

Setze dazu dein Hauptformular(da wo der TreeView drauf soll und nebendran die einzlnen Forms) auf fsMDIForm (im Objektinspektor unter "FormStyle" zu finden)

Nun setzt du auf dein Hauptformular einfach deinen TreeView.. und von mir aus noch n Splitter damit du die Größe verändern kannst.. *g*

Deine Child Fenster die also neben dem TreeView aufgehen soll setzt du "fsMDIChild" ebenfalls unter "FormStyle" zu finden.

So müsste es funktionieren..

_________________
Diskutiere nie mit einem Irren - er zieht dich auf sein Niveau und schlägt dich mit seiner Erfahrung.
MIK Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Di 18.04.06 14:27 
Titel: Erledigt
Hallo und vielen Dank für eure Hilfe.

Ich werde das ganze jetzt über ein TPageControl machen. Die Geschichte mit MDI funktioniert noch nicht ganz, da wie oben beschrieben das gesamte Formular als MDIForm betrachtet wird und ich somit mein MDIChild hinter meine TreeView-Komponente verschieben kann. Ich möchte auf keinen Fall die Position des Fensters während dem Verschieben überprüfen.

Mit PageControl kann man auch sehr gut arbeiten.

Nur noch eine kleine Frage:

Ich habe jetzt ein PageControl mit 4 Registerkarten. Allerdings möchte ich für unterschiedliche Punkte, unterschiedliche PageControls öffnen.

Wie hässlich ist es, wenn ich das benötigte PageControl einfach auf Visible = True setze und die anderen auf Visible = False ?? Ich möchte keine Komponenten zur Laufzeit erstellen. (wenn möglich!) Trotzdem soll das Programm sauber programmiert werden. Könnt ihr mir einen Tip geben wie ihr das machen würdet.

Wenn ihr mir hier noch eine kleine Hilfestellung geben könntet kann ich diesen Beitrag auf erledigt setzen!
Ironwulf
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 733
Erhaltene Danke: 2



BeitragVerfasst: Di 18.04.06 14:33 
nimm statt page control lieber notebook, das ist letztendlich dasselbe nur ohne die unschönen reiter
Alpha_Wolf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 297

Ubuntu, Win XP, Win Vista
C#, Delphi 6 Prof, Delphi 2007 Prof, Java
BeitragVerfasst: Di 18.04.06 14:46 
Kanns hier leider nicht testen, aber bei mir war es jedenfalls immer so das ich nix hinter den Tree schieben konnte.. ob es daran lag das noch ein Panel dahinter lag kann ich dir jetzt nicht sagen.

Wenn du aber eine PageControl nimmst, dann hättest du doch genauso auch die ChildFenster maximieren können oder? ^^

Aber da du ja jetzt schon umgestellt hast wollte ich das nur nochmal anmerken. :)

_________________
Diskutiere nie mit einem Irren - er zieht dich auf sein Niveau und schlägt dich mit seiner Erfahrung.
MIK Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Di 18.04.06 14:58 
Ich habe es natürlich gleich getestet ;-)

Auch mit Panel kann ich das Form verschieben. Schade :-( macht aber nix. Ich bleibe bei PageControl.


@Ironwolf: Die Reiter gefallen mir eigentlich ganz gut und so kann ich auch die Unterpunkte des TreeView schön darstellen.


Nur weiß ich jetzt nicht, wie ich mehrere PageControls auf meinem Hauptformular designen soll.