Form2 wird nicht als MDI Fenster erstellt.

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
lycaner
Beiträge: 56
Registriert: Mi 20. Jul 2011, 13:29
OS, Lazarus, FPC: Winux (L 1.4.4 FPC 2.6.)
CPU-Target: 64 Bit AMD
Wohnort: Bern, Schweiz

Form2 wird nicht als MDI Fenster erstellt.

Beitrag von lycaner »

Hallo Liebe Forums Gurus,

für Heute sind es viele Fragen welche ich habe, ich weis.
Und ich versuche es auch besseres Deutsch zu verwenden.

Ich möchte meine Anwendung später als MDI Anwendung erstellen und bastle neben her mit MDI.
Nun kann ich die Form2 auch "Show" öffnen

Code: Alles auswählen

TForm2.Create(self);
Form2.Show;
Schliessen kann ich das Form2 dann mit:

Code: Alles auswählen

Form2.Free;
Aber die Form2 ist nicht in die Form1 Integriert und frei bewegbar.
Ich habe Heute nun die Lazarus 1.6.0 und FPC 3.0.0 Installiert leider habe ich immer noch den
gleichen Effekt wie unter Lazarus 1.4.4.

Das Form1 Fenster habe ich als fsMDIForm und Form2 als fsMDIChild ich meinte mich unter
meiner Ururalt Delphi Version zu errinnern, dass das dann jeweils so geklappt hatt.

An was kann es liegen dass es unter Lazarus nicht klappt ?
Wisst ihr vielleicht etwas mehr ? Gibt’s da nen Workarround oder habe ich etwas übersehen.

Beste Grüsse

Chris

wp_xyz
Beiträge: 5156
Registriert: Fr 8. Apr 2011, 09:01

Re: Form2 wird nicht als MDI Fenster erstellt.

Beitrag von wp_xyz »

[quote="lycaner"]

Code: Alles auswählen

TForm2.Create(self);
Form2.Show;
Sehr seltsamer Code: Du erzeugst ein Formular der Klasse TForm2 und weist der erzeugten Instanz keine Variable zu, nimmst stattdessen an, dass die Instanz Form2 heißt. Wenn das funktioniert, ist das reiner Zufall, z.B. weil TForm2 vielleicht automatisch erzeugt worden ist, d.h. dein eigener Aufruf von Create ist unnötig.

Zu MDI: Hab dazu noch nichts Ernsthaftes mit Lazarus gemacht, aber ich meine gelesen zu haben, dass MDI mit Lazarus nicht richtig funktioniert, weil es nicht gelang, diese Windows-Technologie vernünftig plattformübergreifend zu implementieren. Ich würde mich jedenfalls auf Überraschungen gefasst machen.

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Form2 wird nicht als MDI Fenster erstellt.

Beitrag von Michl »

Ich zitiere mal von hier

Code: Alles auswählen

MDI was used a lot with versions of Windows prior to Windows 95. However, Microsoft researchers discovered that users found this split artificial and confusing. So from Windows 95, Microsoft announced that MDI would be deprecated and it should not be used for Windows applications ...
MDI macht Probleme unter Windows 10 und es wird IMHO auch von Lazarus nicht weiterentwickelt. Meine persönliche Meinung: ich würde keine allzu große Energie in diese Richtung aufwenden und lieber nach Alternativen Ausschau halten.

[Edit] wp war irgendwie schneller...

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

wp_xyz
Beiträge: 5156
Registriert: Fr 8. Apr 2011, 09:01

Re: Form2 wird nicht als MDI Fenster erstellt.

Beitrag von wp_xyz »

Wenn's unbedingt MDI sein muss, kannst du dir das Package MultiDoc (http://wiki.freepascal.org/MultiDoc) ansehen, hier wird MDI nachgebaut, scheint im Rahmen des SkyChart-Projekts weiterentwickelt zu werden, ist aber nicht kompatibel zu Delphi. Und da du noch nicht sehr erfahren mit Lazarus bist, weiß ich nicht, ob du dich gleich in das Abenteuer mit Fremdkomponenten stürzen solltest...

Auch ohne MDI kannst du mit Lazarus eine Anwendung mit mehreren, gleichzeitig offenen Formularen erstellen. Heute findet man aber häufig "tabbed interfaces", also eine Benutzeroberfläche mit PageControls. Was genau ist deine Absicht?

lycaner
Beiträge: 56
Registriert: Mi 20. Jul 2011, 13:29
OS, Lazarus, FPC: Winux (L 1.4.4 FPC 2.6.)
CPU-Target: 64 Bit AMD
Wohnort: Bern, Schweiz

Re: Form2 wird nicht als MDI Fenster erstellt.

Beitrag von lycaner »

Hallo "wp_xyz",

ich arbeite an einem Migräne Tagebuch für Kopfschmerz und Migräne.
Zuerst dachte ich eher and einzelne Forms später überlegte ich mir MDI wäre ja ganz toll dann hatt mann
Eine saubere Fenster Technik.

Ich habe mir bei recherchen das MultiDoc angeschaut, denke aber dass es nicht weiter Entwickelt wird oder
Irre ich mich in diesem Fall ?

Du schreibst was von "SkyChart-Projekt" ist das eine eigene Komponennten Gruppe für Lazarus ?

Ich arbeite immer wenn ich lust dabei habe am Projekt aber nicht intensiv.

Herzlichen Dank für Deine Erläuterung.

Chris


Mein Projekt: https://github.com/lycaner/Migraene-Tagebuch/

wp_xyz
Beiträge: 5156
Registriert: Fr 8. Apr 2011, 09:01

Re: Form2 wird nicht als MDI Fenster erstellt.

Beitrag von wp_xyz »

skychart ist ein eigenständiges Projekt zur Anzeige des Sternenhimmels am PC (https://sourceforge.net/projects/skychart/). Da der Autor offenbar sowas wie MultiDoc braucht, entwickelt er es für seine Zwecke weiter (unter dem Namen MultiFrame). Die entsprechenden Dateien stehen in einem Unterordner des Projektverzeichnisses, die letzte Änderung ist vom 16.2.

Antworten