Hallo!
In meiner MDI-Anwendung erzeuge ich die MDIChildren wie folgt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| var Form1: TForm1; aMDIChild: TForm;
procedure TForm1.CreateMDIChild(const sHint: String; iTag: Integer); begin aMDIChild := TForm2.Create(Self);
if not bMaximized then aMDIChild.WindowState := wsNormal else aMDIChild.WindowState := wsMaximized; |
Das Problem ist optischer Natur: Bei
Cascade sieht ja alles noch gut aus, aber bei
Tile "blitzt" das neue MDIChild zuerst als
Cascade an der entsprechenden Position auf, um danach per
Tile entsprechend angeordnet zu werden. Das sieht man leider! Dieser Efefkt tritt auch bei jenen MDIChildren auf, die nicht aktiv sind und zB. per
Next oder
Previous zum ActiveMDIChild werden: Man sieht alle MDIChildren ganz kurz als
Cascade, dann erst wie gewünscht, also
Tile oder
fsMaximized.
Egal, was ich mache, zB.
FormStyle := fsMDIChild erst später, nach dem Create, zuweisen oder zuerst
Visible := False, dann
Visible := True - es nützt nichts. Man sieht immer zuerst Cascade.
Ich möchte eigentlich Folgendes:
1. Erzeuge ein neues (noch unsichtbares!) MDIChild.
2. Setze alle nötigen Einstellungen wie
Tile oder
wsMaximized.
3. Setze das neue MDIChild an die richtige Position und mache es dann erst sichtbar.
Zur Zeit ist es so, das es schon während des Creates sichtbar wird, was oben genannten Effekt hat.

gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!