MDI'nın çalışma şekli, yapmaya çalıştığınız şeyle jelleşmiyor.
"MDI" biçimine ihtiyacınız varsa, yerleşik veya bir commercial yerleştirme paketini kullanmayı düşünün ve MDI hissini taklit etmek için yerleştirme kurulumunu kullanın.
Delphi uygulamalarında, sıklıkla TFrames'i kullanır ve bunları ana forma üst üste koyar ve bunları en üst düzeye çıkarır, böylece istemci alanını alırlar. Bu, Outlook'un nasıl göründüğüne benzer bir şey verir. Böyle küçük bir şey gider:
TMyForm = class(TForm)
private
FCurrentModule : TFrame;
public
property CurrentModule : TFrame read FModule write SetCurrentModule;
end;
procedure TMyForm.SetCurrentModule(ACurrentModule : TFrame);
begin
if assigned(FCurrentModule) then
FreeAndNil(FCurrentModule); // You could cache this if you wanted
FCurrentModule := ACurrentModule;
if assigned(FCurrentModule) then
begin
FCurrentModule.Parent := Self;
FCurrentModule.Align := alClient;
end;
end;
kullanmak için tek yapmanız gereken bunu yapabilirsiniz:
MyForm.CurrentModule := TSomeFrame.Create(nil);
Eğer arabirimleri (bir IModule arayüzü veya bir şey yaratmak) kullanmalıdır iyi bir argüman yoktur kullandığın Bunu sık sık yapıyorum ama buradaki konsepti açıklamak için gerekenden daha karmaşık.
HTH