Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - viele fenster öffnen


sam3st - Mo 20.11.06 22:54
Titel: viele fenster öffnen
hallo,

ich bin dabei einen messenger zu schreiben, das grundgerüst steht, hab jetzt nur ein problem: die nachrichtenfenster!

wie kann ich für einzelne user neue eigene fenster (forms?) erstellen und öffnen?


wulfskin - Mo 20.11.06 23:59

Suche in: Delphi-Forum FORM DYNAMISCH ERSTELLEN


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var
  Form: TForm;
begin
  Form := TForm.Create(Self);
  Form.Show;
end;

//Ereignis OnClose
Action := caFree;


sam3st - Di 21.11.06 00:09
Titel: hab noch probleme falls das fenster schon existiert
habe folgenden code:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
uses ...,unit2;

...
var
fenster:tform2;

procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
try
  fenster:=TForm2.Create(Self);
  fenster.Name:=form1.buddysneu.selected.caption;
  fenster.Caption:='Unterhaltung mit '+form1.buddysneu.selected.caption;
  fenster.Show;
  finally
  findcomponent(form1.buddysneu.selected.caption);
  fenster:=TForm2(FindComponent(form1.buddysneu.selected.caption));
  fenster.SetFocus;
end;


wenn ein fenster jedoch erneut erstellt wird kommt ein fehler... wie fange ich den vernünftig ab?


wulfskin - Di 21.11.06 00:15

Weisst du überhaupt, was du in Zeile 15-17 machst? Kommentier doch einfach mal alles ab Zeile 14 aus und schau dann, ob es geht!


sam3st - Di 21.11.06 00:34

also zeile 15 denk dir bitte weg, die existiert nicht.

zeile 16 und 17 sucht das fenster und setzt den fokus drauf (falls ein fehler auftritt, der trotzdem auftritt)

ausserdem kommt der erst gar nicht zu diesen zeilen, da vorher bereits ein fehler auftritt wenn das fenster schon existiert.