Autor Beitrag
Fighti
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32

Win 2000 / SuSE Linux 8.2 (dualboot)
Delphi 7 Pro / Kylix 3 Pro
BeitragVerfasst: Di 31.08.04 10:54 
Hallo,
wie kann ich abfangen das nur eine Instanz eines MDIChild-Formular erstellt werden kann? Also jedes MDIChild nur einmal geöffnet werden kann.

Für alle Tipps vielen Dank.

mfg Fighti
Viper
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 88



BeitragVerfasst: Di 31.08.04 11:03 
Guten Morgen.

Du hast in deinem Hauptformular ein Array, dass alle bisher erstellten MDIChildren enthält. Da musst du dann nur abfragen, ob schon ein Children vom selben Typ, wie das zu erstellende, existiert oder nicht.

Beispiel:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
var
  i: integer;
  Exists: Boolean;
begin
  Exists := False; //Exists gibt an, ob das Formular schon existiert
  for i := 0 to MainForm.MDIChildCount - 1 do //MainForm ist das Hauptformular
  begin
    if MainForm.MDIChildren[i] is TTestChild then //TTestChild ist ein MDIChild-Formular
    begin
      Exists := True;
      Break;
    end;
  end;

  if not Exists then
    //da das Formular noch nicht existiert kannst du es jetzt hier erstellen
end;

_________________
"Der Sinussatz ist nur was für Leute, die Teichbesitzer mit Insel und Baum sind. Alle anderen können ihn vergessen" (Mein Mathe-Prof.)


Zuletzt bearbeitet von Viper am Di 31.08.04 17:14, insgesamt 1-mal bearbeitet
Fighti Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32

Win 2000 / SuSE Linux 8.2 (dualboot)
Delphi 7 Pro / Kylix 3 Pro
BeitragVerfasst: Di 31.08.04 14:47 
@Viper: vielen dank für deinen Tipp. das hat mir sehr weiter geholfen.

gruss fighti
Viper
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 88



BeitragVerfasst: Di 31.08.04 17:16 
Hallo.

Freut mich, dass ich dir helfen konnte. Hab aber gerade noch einen Fehler entdeckt.
Es muss so heißen, sonst bekommst du einen Fehler:
ausblenden Quelltext
1:
for i := 0 to MainForm.MDIChildCount - 1 do					

Habe es oben natürlich auch verbessert.

_________________
"Der Sinussatz ist nur was für Leute, die Teichbesitzer mit Insel und Baum sind. Alle anderen können ihn vergessen" (Mein Mathe-Prof.)