AGB  ·  Datenschutz  ·  Impressum  







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

Neues Fenster nach Aufruf eines MDIChilds

Ein Thema von handson · begonnen am 25. Okt 2007 · letzter Beitrag vom 25. Okt 2007
Antwort Antwort
handson

Registriert seit: 18. Jan 2007
Ort: Delmenhorst
113 Beiträge
 
Delphi 2007 Professional
 
#1

Neues Fenster nach Aufruf eines MDIChilds

  Alt 25. Okt 2007, 11:28
Hallo!

Vielleicht kann mit jemand einen Tipp geben, wie ich folgendes Problem lösen kann:

Ich habe eine MDI-Anwendung. Die MDIChild-Fenster werden jeweils aus BPLs gelesen und angezeigt. Diese MDIChilds werden immer maximiert angezeigt und sollen nicht die Größe ändern. Einen Schönheitsfehler haben die Dinger, wenn sie geöffnet werden, dann sind sie nicht maximiert und werden erst nach der Anzeige autom. vergrößert. Hat zur Folge, dass man diese Veränderung des Fensters ganz kurz sieht. Das habe ich nie wegbekommen und weiss auch nicht, wie ich es hinbekommen kann.
So, jetzt mein eigentliches Problem: Nach dem Öffnen eines MDIChilds soll aus diesem Fenster ein weiters geöffnet werden, sofort nachdem das Fenster angezeigt werden. Das Fenster wird auch angezeigt, nur im Hintergrund sieht man das MDIChild, wo es noch nicht maximiert ist. Es maximiert sich erst automatisch, nachdem ich dieses Extrafenster geschlossen habe. Also, wie bekomme ich es hin, dass dieses Extrafenster erst dann angezeigt wird, wenn sich das MDIChild im Hintergrund vollständig maximiert hat?

Stephan
Stephan Faust
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#2

Re: Neues Fenster nach Aufruf eines MDIChilds

  Alt 25. Okt 2007, 12:02
Wie erstellst du denn das neue Fenster?
Und wie wird dein jetziges MDIChild maximiert? Durch FormStyle im Objektinspektor oder setzt du es erst zur Laufzeit?
  Mit Zitat antworten Zitat
handson

Registriert seit: 18. Jan 2007
Ort: Delmenhorst
113 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Neues Fenster nach Aufruf eines MDIChilds

  Alt 25. Okt 2007, 12:38
Das Maximieren mache ich sowohl im Object-Manager (WindowsState) als auch während der Laufzeit:

Delphi-Quellcode:
procedure TFormBuchungen.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.Style := Params.Style or WS_MAXIMIZE;
  Params.Style := Params.Style and not WS_SYSMENU;
end;
Das Extra-Fenster rufe ich jetzt unter OnActivate auf, bei den anderen Ereignisse hatte ich das auch schon versucht, leider erfolglos.

Delphi-Quellcode:
 
  
procedure TFormBuchungen.FormActivate(Sender: TObject);
begin
:
:
    FormBuchDatum := TFormBuchDatum.Create(self);
    Try
      FormBuchDatum.ShowModal;
      Buchungsdatum.Caption := DateToStr(FormBuchDatum.Buchdatum);
    Finally
      FormBuchDatum.Free;
    End;
:
:
End;
Stephan Faust
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#4

Re: Neues Fenster nach Aufruf eines MDIChilds

  Alt 25. Okt 2007, 13:27
WindowState wars ... sorry, verwechselt.

Im OnActivate würde ich das nicht reinpacken, da afaik das jedesmal aufgerufen wird, wenn die Form den Fokus bekommt. Was ist mit OnShow?
Weiterhin ist ShowModal für das Problem verantwortlich, dass sich die andere Form erst dann maximiert, wenn du die neue Form schließt.
  Mit Zitat antworten Zitat
handson

Registriert seit: 18. Jan 2007
Ort: Delmenhorst
113 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Neues Fenster nach Aufruf eines MDIChilds

  Alt 25. Okt 2007, 14:09
Naja, das ist auch ein netter Effekt: Jetzt kommt erst das Extra-Fenster bevor das MDIChild angezeigt wird.
Es soll aber genau umgekehrt...
Stephan Faust
  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 22:31 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