Autor Beitrag
eniac
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75

Win 98, Win XP, SuSE Linux 9.0
D3 Prof
BeitragVerfasst: So 01.08.04 23:29 
Nabend,


ich will ein neues Fenster mit dem "constructor create" erstellen; funktioiert auch mit:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.Button1Click(Sender: TObject);
  var Form:TMeinFenster;
begin
  Form:=TMeinFenster.Create(self);
  Form.Show;
end;


Das Problem ist, dass ich als "aOwner" nicht self, sondern das Fenster Form1 haben will.
Eigentlich auch kein Problem mit:

ausblenden Delphi-Quelltext
1:
2:
3:
  //...
  Form:=TMeinFenster.Create(Form1);
  //...


Ich kann allerdings nicht Form1 als TForm1-Fenster nehmen, da ich mehrere TForm1-Fenster als Array-Variablen habe. Genau das will Delphi nicht.
Scheinbar kann als "aOwner" keine Variable benutzt werden (auch wenn diese vom TForm1-Typ ist).

Alles verstanden ???

Mir ist auch schon geholfen, wenn mir jemand sagen könnte, ob es ähnlich wie self ein Parameter gibt, welches das Objekt bezeichnet aus dem etwas "createt" wird (also bei mir TForm1)!

Puh, ich hoffe das war einigermaßen erständlich :wink: .


Danke schon jetzt an alle die sich bemühen wollen ...
Moderiert von user profile iconPeter Lustig: Code- durch Delphi-Tags ersetzt.
Muetze1
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 346



BeitragVerfasst: So 01.08.04 23:39 
Moin!

Wenn du die Form in einer Methode von TForm1 anlegst, dann ist Self doch die Instanz von TForm1 und somit ist der Owner doch die Instanz von Form1. Und wenn du die TForm1 Instanzen in einem Array hast, dann gibt doch als Owner das Array an - nur halt mit einem Index eine spezielle Form Instanz die genutzt werden soll.

Irgendwie verstehe ich deshalb dein Problem nicht so ganz...

MfG
Muetze1
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: So 01.08.04 23:45 
Hallo!

Zitat:
Ich kann allerdings nicht Form1 als TForm1-Fenster nehmen, da ich mehrere TForm1-Fenster als Array-Variablen habe. Genau das will Delphi nicht.

Was genau machst du, was sagt dir Delphi als Meldung? Mit "Delphi will dann nicht" kann man nichts anfangen.

Also, du hast ein Array of TForm1, soweit so gut. Natürlich kannst du nicht einen Array als AOwner angeben, da es eben nur einen Owner geben darf. MyForm1Array geht nicht, MyForm1Array[0] schon.

Zitat:
Scheinbar kann als "aOwner" keine Variable benutzt werden (auch wenn diese vom TForm1-Typ ist).


Was glaubst du denn, ist "Form1" wohl? :wink:

Zitat:
Mir ist auch schon geholfen, wenn mir jemand sagen könnte, ob es ähnlich wie self ein Parameter gibt, welches das Objekt bezeichnet aus dem etwas "createt" wird (also bei mir TForm1)!


Wieso etwas ähnliches? Das ist nunmal "Self". Self ist das Objekt, das gerade den Befehl ausführt.

Cu,
Udontknow
eniac Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75

Win 98, Win XP, SuSE Linux 9.0
D3 Prof
BeitragVerfasst: Mo 02.08.04 12:18 
hallo,


... danke für die Lösungen.
Das mit dem self hätte ich natürlich selbst wissen müssen; es sah bei mir nur so aus, als wäre self doch nicht das ausführende Objekt, weil ich noch an anderer Stelle einen Fehler gemacht hatte.
Das mit der Array-Variable hat deshalb nicht gefunzt, weil ich sie aus einer anderen Unit nicht richtig eigebunden hatte.

Ich habs jetzt hinbekommen :D .

Danke an Muetze1 und Udontknow, ihr habt mir echt die Augen geöffnet :wink: !


Man liest sich ...