Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Eine neue Form in einem neuen Fenster erstellen
hungrycoder - Sa 16.02.13 13:27
Titel: Eine neue Form in einem neuen Fenster erstellen
Hallo, irgendwie stehe ich heute total auf dem Schlauch. Was ich will: Ich habe eine Hauptform Form1. Aus Form1 möchte ich eine Form2 createn. Diese Form2 soll unabhängig von Form1 zu schließen sein und auch in einem eigenen Windowsfenster laufen.
Mein Problem ist jetzt, dass ich nach dem erstellen der Form2 keinen Zugriff auf jegliche Klicks auf die Buttons von Form2 habe.
Das ganze habe ich so geschrieben:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| Form2 := TForm2.Create(nil); Form2.Parent := nil; Form2.ParentWindow := GetDesktopWindow; Form2.ControlStyle := ControlStyle + [csAcceptsControls]; Form2.ControlStyle := ControlStyle + [csCaptureMouse]; Form2.ControlStyle := ControlStyle + [csClickEvents]; Form2.Show; |
Ich verzweifele hier. Hat jemand einen besseren Vorschlag oder weiß was ich hier falsch mache, dann BITTE immer her damit.
Viele Grüße
Moderiert von
Gausi: Delphi-Tags hinzugefügt
Gausi - Sa 16.02.13 16:10
Wenn die Form nicht automatisch erzeugt wird (was ja standardmäßig der Fall ist), dann geht das in der Regel so:
Delphi-Quelltext
1: 2: 3:
| if not assigned(Form2) then Application.CreateForm(TForm2, Form2); Form2.Show; |
hungrycoder - Sa 16.02.13 17:29
Danke dir für deine Antwort, diese Art kannte ich noch nicht, dennoch löst sie nicht mein Problem, da es ja genau dasselbe ist wie:
Form2 := TForm2.Create(nil);
Form2.Show;
Ich hätte gerne aber, dass die neu erstellte Form in einem eigenen Windwosfenster angezeigt wird. Es wäre auch ok, wenn es nur in einem Windowsfenster wäre nur geht das irgendwie nicht weil meine Form1 kleiner ist als Form2. Form2 sollte dabei dann aber im Hintergrund sein. Wäre klasse, wenn du noch weitere Ideen hättest.
Gausi - Sa 16.02.13 21:04
Was ist denn ein eigenes Windowsfenster? :gruebel: Meinst du so MDI-Fenster?
hungrycoder - So 17.02.13 00:51
Ok ich gebe zu ich hab mich schlecht ausgedrückt. Nein MIDI meine ich nicht. Wenn ich mein Programm starte sehe ich ja in der Taskleiste das Fenster meines Programmes. Hat dieses Programm aber jetzt eine zweite Form erstellt ist es bei mir so, dass diese beiden Forms das gleiche Fenster haben. Da meine Form1 aber kleiner als die Form2 ist kann ich zwischen den beiden nicht umschalten, sondern muss Form2 erst mal schließen. Was ich gerne hätte ist also zwei Forms und zwei Fenster.
bummi - So 17.02.13 11:18
Ich vermute Dich stört die "Verdrahtung" des neuen Forms mit dem bestehenden.
Dies lässt sich abschalten indem man per Projekt>Quelltext anzeigen die Zeile
auskommentiert
oder indem man Popupmode und PopupParent des anzuzeigenden Forms ändert
Delphi-Quelltext
1: 2: 3:
| Form3.PopupMode := pmExplicit; Form3.PopupParent := nil; Form3.Show; |
hungrycoder - So 17.02.13 12:52
@bummi und StundenPlan
Danke genau das habe ich gemeint. Klappt wunderbar.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!