AGB  ·  Datenschutz  ·  Impressum  







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

MDIForm nicht aktiv

Ein Thema von Taladan · begonnen am 24. Aug 2003 · letzter Beitrag vom 24. Aug 2003
Antwort Antwort
Benutzerbild von Taladan
Taladan

Registriert seit: 5. Aug 2003
Ort: Osnabrück
505 Beiträge
 
Delphi 2005 Professional
 
#1

MDIForm nicht aktiv

  Alt 24. Aug 2003, 00:37
Ich erzeuge aus einen fsNormal Fenster ein fsMDIForm Fenster. Sobald ich jetzt aber eine fsMDIChild gleichzeitig erzeugen will, erhalte ich die Fehlermeldung das meine MDIForm nicht aktiv sei. Auch das öffnen der MDIChild aus den Ereignissen onpaint, oncreate und onshow bringen das gleiche Ergebnis.Wer kann helfen?

Auch wenn TMainform automatisch erzeugt wird und diesen lediglich visible auf false stelle, erhalte ich das selbe Ergebnis.

Mein Code:

Delphi-Quellcode:
  mainform := TMainform.create(self); //fsMDIForm
  mainform.show;
  schritt1 := TSchritt1.create(self); //fsMDIChild
  schritt1.show;
  titelfenster.visible := false; //fsNormal
Delphi-Quellcode:
  mainform.visible := true;
  mainform.show;
  schritt1 := TSchritt1.create(self);
  schritt1.show;
  titelfenster.visible := false;
Marco
  Mit Zitat antworten Zitat
JoelH
(Gast)

n/a Beiträge
 
#2

hmm,

  Alt 24. Aug 2003, 08:08
ich bin jetzt nicht sicher aber du musst doch die Child in der Unit der MDIFrom tarten, nicht aus dem Hauptfenster heraus. Denn das MDIForm kann nicht aktiv sein wenn du dich gerade im Code des Hauptfensters befindest. Ich würde den schritt1 in die FormActivate des MDIForms legen.
  Mit Zitat antworten Zitat
Benutzerbild von Taladan
Taladan

Registriert seit: 5. Aug 2003
Ort: Osnabrück
505 Beiträge
 
Delphi 2005 Professional
 
#3

Re: MDIForm nicht aktiv

  Alt 24. Aug 2003, 11:29
das bringt immer noch das selbe problem mit sich. selbst beim onaktivate ereignis reagiert es nicht wie es soll.
Marco
  Mit Zitat antworten Zitat
JoelH
(Gast)

n/a Beiträge
 
#4

hmm,

  Alt 24. Aug 2003, 12:15
also bei mir geht das.
Ein kleines Projekt
die hauptform :
Delphi-Quellcode:
unit normalform1;

interface

uses
  SysUtils, Types, Classes, Variants, QTypes, QGraphics, QControls, QForms,
  QDialogs, QStdCtrls, mdiform;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.xfm}

procedure TForm1.Button1Click(Sender: TObject);
var f : TForm2;
begin
  f := TForm2.Create(self);
  f.show;
end;

end.
die MDIFORM
Delphi-Quellcode:
unit mdiform;

interface

uses
  SysUtils, Types, Classes, Variants, QTypes, QGraphics, QControls, QForms,
  QDialogs, QStdCtrls, mdichild;

type
  TForm2 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.xfm}

procedure TForm2.Button1Click(Sender: TObject);
var fchild : TForm3;
begin
  fchild := TForm3.Create(self);
  fchild.show;
end;

end.
und das child
Delphi-Quellcode:
unit mdichild;

interface

uses
  SysUtils, Types, Classes, Variants, QTypes, QGraphics, QControls, QForms,
  QDialogs, QStdCtrls;

type
  TForm3 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form3: TForm3;

implementation

{$R *.xfm}

end.
Das ganze Projekt hab ich mal angehängt, ist allerdings Kylix3 sollte aber als CLX Anwendugn gehen.
geht ohne Probleme.

EDIT: DAs Buttonevent von der MDIForm kann auch im onActivate der Form2 sein, das geht auch.
Angehängte Dateien
Dateityp: zip geht.zip (10,6 KB, 12x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Taladan
Taladan

Registriert seit: 5. Aug 2003
Ort: Osnabrück
505 Beiträge
 
Delphi 2005 Professional
 
#5

Re: MDIForm nicht aktiv

  Alt 24. Aug 2003, 12:37
Dein code gegenüber meinen nur einen unterschied. Der Anwender muß erst auf den Button clicken, damit das die MDIChild geladen wird. Das soll jedoch ohne zutun vom anwender funktionieren. Also MDIForm und MDIChild gleichzeitig öffnen ohne das der Anwender Hand anlegen muß.
Marco
  Mit Zitat antworten Zitat
JoelH
(Gast)

n/a Beiträge
 
#6

Re: MDIForm nicht aktiv

  Alt 24. Aug 2003, 12:48
hmm, so gehts aber auch, ist dasselbe in grün.
Delphi-Quellcode:
unit mdiform;

interface

uses
  SysUtils, Types, Classes, Variants, QTypes, QGraphics, QControls, QForms,
  QDialogs, QStdCtrls, mdichild;

type
  TForm2 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);

    procedure FormActivate(Sender: TObject); private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.xfm}

procedure TForm2.Button1Click(Sender: TObject);
var fchild : TForm3;
begin
  fchild := TForm3.Create(self);
  fchild.show;
end;

procedure TForm2.FormActivate(Sender: TObject);
var fchild : TForm3;
begin
  fchild := TForm3.Create(self);
  fchild.show;

end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von Taladan
Taladan

Registriert seit: 5. Aug 2003
Ort: Osnabrück
505 Beiträge
 
Delphi 2005 Professional
 
#7

Re: MDIForm nicht aktiv

  Alt 24. Aug 2003, 13:46
ähm hast du auch form2 auf fsMDIForm und form3 auf fsMDIChild gestellt. Obwohl ich deinen gesamten code genutz hab, funktionert der nicht.

(Dein ZIP Projekt funktionert nicht mit meinen Windoff Delphi)
Marco
  Mit Zitat antworten Zitat
JoelH
(Gast)

n/a Beiträge
 
#8

hmm,

  Alt 24. Aug 2003, 13:59
natürlich hab ich das.

Du kannst ja einfach ein neues Proekt draus machen soviel Quellcode ist es ja nicht. den du abtippen musst. Irgendetwas machst du einfach falsch, scheinbar.
  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 18:50 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