PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Position eines MDI-Childs



Patrick Kauer
19.02.2003, 22:47
Hallo,

ich habe folgendes Problem: Ich möchte, dass ein von TForm abgeleitetes MDI-Child Form, wenn es angezeigt wird, sind selbst eine bestimmte Position auf dem Mainform zuweisen kann.

Was funktioniert ist:
<pre>
procedure TfrmMain.Test;
var f:TMDICHild;
begin
f := TMDIChild.Create;
f.Left := 10;
....
end;
</pre>
Das möchte ich aber nun innerhalb von TMDICHild machen: Folgendes funktioniert auch, ist aber nicht schön, weil das Fenster dann sichbar durch die Gegend springt:
<pre>
procedure TMDIChild.Paint(Sender: TObject);
begin
Left := 10;
..
inherited..
end
</pre>
Warum funktioniert das nicht schon früher in DoShow oder Create?
<pre>
procedure TMDIChild.DoShow(Sender: TObject);
begin
Left := 10;
...
end;
</pre>
habs schon mit SetBounds(0,0,width,height); oder SetWindowPlacement(Handle, @Placement); versucht, aber das klappt alles nicht.

Vielen Dank für einen Tipp!

Bernd Schulz
20.02.2003, 09:51
Hallo!<br>
constructor TMDIChild.Create(AOwner: TComponent);<br>
begin<br>
inherited;<br>
self.top := 100;<br>
self.left := 100;<br>
end;<br>
<br>
Funktioniert bei mir einwandfrei!<br>
Ja das Fenster macht einen kleinen Sprung.<br>
Wie wärs denn mit einer SDI Anwendung? Da kann man das Fenster unsichtbar erzeugen und dann verschieben etc..<br>
BYE BERND<br&gt