AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MDI mit WinForms?

Ein Thema von JayK · begonnen am 20. Mai 2005 · letzter Beitrag vom 23. Mai 2005
Antwort Antwort
Seite 1 von 2  1 2      
JayK

Registriert seit: 1. Mai 2005
49 Beiträge
 
#1

MDI mit WinForms?

  Alt 20. Mai 2005, 17:25
Hallo, nach der toolbar gleich das nächste ,

wie kann man mit der Windows Forms MDI Anwendungen schreiben?
Ich finde dazu keine Passende Property im OI.

Kann sein, dass das auch im .NET Framework SDK steht, aber ich konnte wieder nichts brauchbares finden...

Schonmal Danke im voraus,
JayK
nil
  Mit Zitat antworten Zitat
Benutzerbild von ltiefland
ltiefland

Registriert seit: 2. Mai 2005
Ort: Marl
63 Beiträge
 
Delphi 2005 Professional
 
#2

Re: MDI mit WinForms?

  Alt 20. Mai 2005, 17:40
Ich weiß ja nicht, wie es bei C# und .NET ist, bei Delphi und Win32 gibt es allerdings eine Eigenschaft namens "FormStyle". Für das Hauptformular der Anwendung muß man es auf "fsMDIForm" setzen. Bei den Kindformularen muß es auf "fsMDIChild" (jeweils ohne "") stehen.
Lars Tiefland
Live Long And Prosper,
Lars Tiefland
admin at GBS, a Mod for STEF2, New mod versions and support!
Download Opera 8
  Mit Zitat antworten Zitat
JayK

Registriert seit: 1. Mai 2005
49 Beiträge
 
#3

Re: MDI mit WinForms?

  Alt 20. Mai 2005, 17:44
Zitat von ltiefland:
Ich weiß ja nicht, wie es bei C# und .NET ist, bei Delphi und Win32 gibt es allerdings eine Eigenschaft namens "FormStyle". Für das Hauptformular der Anwendung muß man es auf "fsMDIForm" setzen. Bei den Kindformularen muß es auf "fsMDIChild" (jeweils ohne "") stehen.
Genau diese Eigenschaften habe ich gesucht und nicht gefunden...
nil
  Mit Zitat antworten Zitat
Benutzerbild von ltiefland
ltiefland

Registriert seit: 2. Mai 2005
Ort: Marl
63 Beiträge
 
Delphi 2005 Professional
 
#4

Re: MDI mit WinForms?

  Alt 20. Mai 2005, 17:56
Ich habe gerade mal nachgeschaut: Für das Hauptformular mußt Du "isMDIContainer" auf TRUE setzen.
Bei den Kinderformularen bin ich aber ehrlich gesagt auch überfragt.
Lars Tiefland
Live Long And Prosper,
Lars Tiefland
admin at GBS, a Mod for STEF2, New mod versions and support!
Download Opera 8
  Mit Zitat antworten Zitat
JayK

Registriert seit: 1. Mai 2005
49 Beiträge
 
#5

Re: MDI mit WinForms?

  Alt 20. Mai 2005, 18:36
Zitat von ltiefland:
...isMDIContainer" auf TRUE setzen.
Wie konnt'ich denn das übersehen? Danke.
Zitat von ltiefland:
Bei den Kinderformularen bin ich aber ehrlich gesagt auch überfragt.
Hmmm...
nil
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#6

Re: MDI mit WinForms?

  Alt 20. Mai 2005, 18:49
Zitat von JayK:
Zitat von ltiefland:
...isMDIContainer" auf TRUE setzen.
Wie konnt'ich denn das übersehen? Danke.
Zitat von ltiefland:
Bei den Kinderformularen bin ich aber ehrlich gesagt auch überfragt.
Hmmm...
Mönsch...
Ich weiß nicht wie's euch geht, aber ich habe hier so eine prima Sache. Nennt sich .Net SDK Doku.
Einmal F1 auf IsMdiContainer und ich sehe alle infos, die man so braucht. (Um ein bisschen für Chrome zu werben, habe ich gleich mal einen Screenie angehängt )
Miniaturansicht angehängter Grafiken
ismdicontainer_388.png  
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: MDI mit WinForms?

  Alt 21. Mai 2005, 09:28
Du musst die Childs nur so erzeugen, dass der MDIContainer der Owner ist. Dann sind diese automatisch MDI-Childs.
Peter
  Mit Zitat antworten Zitat
JayK

Registriert seit: 1. Mai 2005
49 Beiträge
 
#8

Re: MDI mit WinForms?

  Alt 21. Mai 2005, 09:40
Ich habs jetzt!!! Wartet mal noch ein bisschen, dann kann ich nachher noch den genauen Code posten...

EDIT: Also hier der Code:
(PS. nimmt man eigentlich auch für C# Delphi-Code-Tags?
EDIT2: wochl eher nicht, denn dann kommt alles als Kommentar ) /EDIT2
Code:
/// <summary>
/// Hauptunit
/// </summary>
namespace Programm
{
   public class MainForm : System.Windows.Forms.Form
   {
      ...
      
      private void CreateChild()
      {
         Form2 Bezeichner = new Form2();      // neues Formular erzeugen
         Bezeichner.MdiParent = this;         // Formular als MDI-Child
         Bezeichner.Show();                  // Formular anzeigen
      }

      void MenuItemClick(object sender, System.EventArgs e)   // oder anderes Ereignis natürlich
      {
         this.CreateChild();
      }
      
      ...
   }
}
CreateChild kann auch anders heißen.
Form2 wird durch den Bezeichner des anderen Formulars ersetzt.
Bezeichner, kann man sich sicherlich schon denken, ist der Bezeichner mir dem das Formular dann angesprochen wird.

HINWEIS: Die Unit mit dem anderen Formular muss im den selben namespace oben haben, sonst funzt das nicht (hat mich gestern 2 Stunden gekostet )
nil
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#9

Re: MDI mit WinForms?

  Alt 21. Mai 2005, 14:45
Zitat von JayK:
HINWEIS: Die Unit mit dem anderen Formular muss im den selben namespace oben haben, sonst funzt das nicht (hat mich gestern 2 Stunden gekostet )
Wo siehst du denn Units in C#?
C# interessiert sich zum Glück einen feuchten *piep* um Dateinammen.
Hier mal ein absolut abstraktes Beispiel eines MdiContainers, der direkt im Konstruktor ein ChildForm anlegt.
Ob du es in eine Datei oder in 2 schreibst macht absolut keinen Unterschied. (bzw in .Net 2.0 oder schon in .Net 1.1 mit Chrome: mit partial classes in soviele Dateien wie du willst...)
Code:
using System.Windows.Forms;

namespace MainNameSpace
{
    public class MainForm : Form
    {
        public MainForm()
            : base()
        {
            IsMdiContainer = true;
            ChildNameSpace.Child myChildForm = new ChildNameSpace.Child();
            myChildForm.MdiParent = this;
            myChildForm.Show();
        }
    }
}

namespace ChildNameSpace
{
    public class Child : Form
    {}
}
Hast du den Namespace in der using clause wird er einfach auch darin versuchen unbekannte Typen aufzulösen.
möglich wäre also auch:
Code:
using System.Windows.Forms;
using ChildNameSpace;

namespace MainNameSpace
{
    public class MainForm : Form
    {
        public MainForm()
            : base()
        {
            IsMdiContainer = true;
            Child myChildForm = new Child();
            myChildForm.MdiParent = this;
            myChildForm.Show();
        }
    }
}


namespace ChildNameSpace
{
    public class Child : Form
    {}
}
oder in 2 Dateien:

Code:
using System.Windows.Forms;
using ChildNameSpace;

namespace MainNameSpace
{
    public class MainForm : Form
    {
        public MainForm()
            : base()
        {
            IsMdiContainer = true;
            Child myChildForm = new Child();
            myChildForm.MdiParent = this;
            myChildForm.Show();
        }
    }
}
Code:
using System.Windows.Forms;

namespace ChildNameSpace
{
    public class Child : Form
    {}
}
macht, wie gesagt, absolut keinen Unterschied.
Falls du #develop verwendest solltest du dir vielleicht die neueste Version asu dem repository ziehen. Darin ist Mathias' Help 2.0 AddIn enthalten. Der gibt dir die Möglichkeit die .Net Doku, wie im VS, direkt innerhalb der IDE zu haben.
  Mit Zitat antworten Zitat
JayK

Registriert seit: 1. Mai 2005
49 Beiträge
 
#10

Re: MDI mit WinForms?

  Alt 21. Mai 2005, 16:25
Zitat von Robert_G:
Zitat von JayK:
HINWEIS: Die Unit mit dem anderen Formular muss im den selben namespace oben haben, sonst funzt das nicht (hat mich gestern 2 Stunden gekostet )
Wo siehst du denn Units in C#?
Unter Unit verstehe ich einfach nur andere Datei. Ich hatte nicht die Lust mir da was anderes auszudenken oder rauszusuchen.

Stimmt mit den Namespaces. Hatte ich wohl ein Brett vorm Kopf.

Zitat von Robert_G:
...Falls du #develop verwendest solltest du dir vielleicht die neueste Version asu dem repository ziehen. Darin ist Mathias' Help 2.0 AddIn enthalten. Der gibt dir die Möglichkeit die .Net Doku, wie im VS, direkt innerhalb der IDE zu haben.
Hab ich schon und gestern erst die neueste Version geholt. Hat aber immer noch ein paar Fehler .
nil
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:52 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