AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unabhängige neue TForm erzeugen

Ein Thema von berens · begonnen am 19. Mär 2007 · letzter Beitrag vom 19. Mär 2007
Antwort Antwort
berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#1

Unabhängige neue TForm erzeugen

  Alt 19. Mär 2007, 16:29
Hi!

Ich habe eine TForm (Form2) die zu Programmstart in einem anderem Form (Form1) liegt. Bei Bedarf soll diese jedoch auch so verwendet werden können, dass ich Form2 als eigenständiges Fenster (auch in Taskleiste sichtbar) habe und auch noch sehen kann, wenn ich Form1 minimiere (normalerweise werden alle "Client"-Forms mit minimiert...).

Code:
  FContainerForm := TForm.CreateNew(NIL, 0);
  with FContainerForm do begin
    Left := 0;
    Top := 0;
    Parent := Form1;
    OnKeyDown := FormKeyDown;
    DoubleBuffered := True;
    BorderStyle := bsNone;
    KeyPreview := True;
    if not isDeveloperMode then begin
      FormStyle := fsStayOnTop;
    end;
    Show;
    Align := alClient;
  end;
  Mit Zitat antworten Zitat
Benutzerbild von MacGuyver
MacGuyver

Registriert seit: 9. Sep 2003
Ort: Wildeshausen
293 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Unabhängige neue TForm erzeugen

  Alt 19. Mär 2007, 17:03
Moin auch!

Wenn du beim Create Application übergibt geschiet das doch automatisch, oder?
Englisch eine Weltsprache? Zu kompliziert und der nahe Osten würde Englisch als Pflichtweltsprache nicht akzeptieren.
IDO wäre genau das Richtige: http://forum.idolinguo.de/index.php oder www.idolinguo.de
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 16. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Unabhängige neue TForm erzeugen

  Alt 19. Mär 2007, 17:43
Zitat von berens:
Ich habe eine TForm (Form2) die zu Programmstart in einem anderem Form (Form1) liegt. Bei Bedarf soll diese jedoch auch so verwendet werden können, dass ich Form2 als eigenständiges Fenster (auch in Taskleiste sichtbar) habe und auch noch sehen kann, wenn ich Form1 minimiere (normalerweise werden alle "Client"-Forms mit minimiert...).
Unabhängig von der eigentlichen Frage würde ich in jedem Fall die Application (oder meinetwegen das Hauptform Form1) dem Konstruktor als Owner übergeben!

Du kannst dein Form "eigenständig" anzeigen lassen, indem du folgendes machst:
Delphi-Quellcode:
DeinForm.Parent := nil;
DeinForm.ParentWindow := GetDesktopWindow;
Danach verhält es sich aber nicht mehr unbedingt so, wie es sich zuvor verhalten hat. Möglicherweise muss die Eigenschaft ControlStyle auch angepasst werden (z.B. bei TButton nötig, wenn man ihn auf den Desktop legt und weiterhin seine Klicks in der Ursprungsanwendung empfangen möchte). Vielleicht muss auch an anderen Stellen noch eingegriffen werden.

Daher ist diese "Lösung" hier lediglich ein Ansatz.
  Mit Zitat antworten Zitat
berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Unabhängige neue TForm erzeugen

  Alt 19. Mär 2007, 18:06
Hat funktioniert, vielen Dank!

Owner wurde angepasst, danke für den Hinweis.

An ParentWindow hatte ich garnet gedacht!
Thx.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz