AGB  ·  Datenschutz  ·  Impressum  







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

Form2 NICHT modal anzeigen - XE2

Ein Thema von Guido Eisenbeis · begonnen am 7. Nov 2011 · letzter Beitrag vom 9. Nov 2011
Antwort Antwort
Seite 1 von 2  1 2      
Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#1

Form2 NICHT modal anzeigen - XE2

  Alt 7. Nov 2011, 09:24
Teste zur Zeit Delphi XE2. Ich hab ein simples Projekt erstellt, das lediglich zwei Forms enthält. Auf Form1 ist ein Button, der Form2 zeigt (Form2.Show). Ergebnis:

In Turbo Delphi wird Form2 "normal" gezeigt, gleichrangig mit Form1 (Z-Order wechselt beim Fokus).

In Delphi XE2 wird Form2 modal angezeigt, also immer über Form1.

Ist das ein Bug oder ein Feature? Und wichtiger: Wie erhalte ich das "alte" Verhalten, das die Forms gleichwertig sind, was die Z-Order betrifft?

Guido.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: Form2 NICHT modal anzeigen - XE2

  Alt 7. Nov 2011, 09:40
Das kann ich unter XE nachvollziehen. Wenn man in der Projektdatei das Application.MainFormOnTaskBar auskommentiert, verhält sich das Fenster aber wie gewünscht.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
plusplus

Registriert seit: 30. Jul 2010
106 Beiträge
 
Delphi 2009 Architect
 
#3

AW: Form2 NICHT modal anzeigen - XE2

  Alt 7. Nov 2011, 09:43
Check if the PopupMode property of the second form is pmNone.
Grid Computing made simple - http://xerocoder.com
  Mit Zitat antworten Zitat
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Form2 NICHT modal anzeigen - XE2

  Alt 7. Nov 2011, 09:53
Das kann ich unter XE nachvollziehen. Wenn man in der Projektdatei das Application.MainFormOnTaskBar auskommentiert, verhält sich das Fenster aber wie gewünscht.
Das ist die Lösung. Hatten wir erst vor kurzem im DF: http://www.delphiforum.de/viewtopic.php?t=107604
Andreas Lauß
Blog
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#5

AW: Form2 NICHT modal anzeigen - XE2

  Alt 7. Nov 2011, 11:45
[add]
http://forum.delphi-treff.de/showthr...nFormOnTaskbar
[/add]


Abgesehn davon, daß es eigentlich besser sind, wenn seit Vista und vorwiegend Windows 7, die Hauptform sich in der Taskbar befindet und nicht die versteckte Application-Form (ist für die Messagebehandlung und Co.).

Zitat von Aus der Delphi-OH:
Steuert, wie Taskleisten-Schaltflächen von Windows von der VCL behandelt werden.

Die Eigenschaft MainFormOnTaskBar steuert, wie Taskleisten-Schaltflächen von Windows von der VCL behandelt werden.

Wenn die Eigenschaft True ist, repräsentiert eine Taskleisten-Schaltfläche das Hauptformular einer Anwendung und zeigt dessen Titel an. Bei False repräsentiert eine Taskleisten-Schaltfläche das (verborgene) Hauptfenster einer Anwendung und zeigt den Anwendungstitel an.

MainFormOnTaskBar muss True sein, damit die Aero-Effekte aus Windows Vista oder Windows 7 verwendet werden können. Dazu zählen: LiveTaskbar-Miniaturansichten, dynamische Fenster, Windows-Flip und Windows-Flip-3D.

Wenn eine Änderung des Standardverhaltens erforderlich ist, sollte MainFormOnTaskBar in der .dpr-Datei nach Application.Initialize und vor der Erstellung des Hauptformulars gesetzt werden. MainFormOnTaskBar sollte beim Start gesetzt werden und während der gesamten Anwendungsdauer erhalten bleiben. Das Ändern dieser Eigenschaft zur Laufzeit könnte unerwartetes Verhalten verursachen.

Die Standardeinstellung von MainFormOnTaskBar für in Delphi 2007 und späteren Produkten erstellte Anwendungen ist True, für frühere Produkte False.

Die Eigenschaft kann auch für ältere Anwendungen verwendet werden. Beachten Sie, dass sich die Eigenschaft auf die Z-Reihenfolge des Hauptformulars auswirkt, falls Ihre Anwendung davon abhängig ist.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 7. Nov 2011 um 11:55 Uhr)
  Mit Zitat antworten Zitat
Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Form2 NICHT modal anzeigen - XE2

  Alt 7. Nov 2011, 12:55
@plusplus

I've played around with PopupMode property in both forms, but without success.

So, ich hoffe, in meinem englichen Satz steht nichts Blödes (Online-Translator). Ich habe mit dem PopupMode Property rumgespielt in beiden Forms, aber ohne Erfolg.


Wenn man in der Projektdatei das Application.MainFormOnTaskBar auskommentiert, verhält sich das Fenster aber wie gewünscht.
Ja, funktioniert.


- Ab welcher Delphi-Version wurde das geändert? Ich konnte es schon soweit eingrenzen, dass es in Turbo-Delphi (=2006) noch "normal" war. Kann das jemand noch weiter eingrenzen?

- Weiß jemand, warum das geändert wurde?


Die beiden Fragen wurden gerade durch himitsus Posting #5 beantwortet. Und der Link in himitsus Posting enthält auch schon gleich eine Antwort auf die Frage, die ich als nächstes stellen wollte:

- Kann man MainFormOnTaskBar = true lassen und trotzdem erreichen, dass weitere Forms nicht modal zu Form1 gezeigt werden?

Den CreateParams-Ansatz im Link in himitsus Posting sehe ich als die bessere Lösung an. Oder was meint ihr?

... besser ... für die Messagebehandlung und Co.
Fällt dir da ein Beispiel ein?


OffTopic:

Im Projekt-Verwaltung-Fenster kann man ja Units und Forms doppelklicken und die werden dann im Editor-Fenster(-Bereich) geöffnet und angezeigt. Geht das auch mit der Projekt-Datei? Das geht zwar per Kontextmenü, aber das Menü ist ziemlich lang und der Punkt nicht sofort zu finden. Per Shortcut Strg+V gehts auch, aber das geht mir nicht so ins Gedächtnis rein. Ein Doppelklick wär halt bequem (Ich geb's ja zu. )


Guido.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#7

AW: Form2 NICHT modal anzeigen - XE2

  Alt 7. Nov 2011, 14:02
Ein Beispiel?

Nja, es einige Messages, wie WM_CHANGEINI (oder so) und das App-Beenden laufen über das HWND (Application.Handle), welches das versteckte Fenster ist), damit Borland/Codegear/Embarcadero die Codes dafür nicht mehrfach im Programm haben (in jedem Fenster).


[OT] Hättest du kein Turbo Delphi, dann hätte man sich da etwas über die OTA (Open Tools API) basteln können, aber da du keine BPLs installieren darfst, geht dieser Weg nicht.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Form2 NICHT modal anzeigen - XE2

  Alt 7. Nov 2011, 14:18
Ein Beispiel?

Nja, es einige Messages, wie WM_CHANGEINI (oder so) und das App-Beenden laufen über das HWND (Application.Handle), welches das versteckte Fenster ist), damit Borland/Codegear/Embarcadero die Codes dafür nicht mehrfach im Programm haben (in jedem Fenster).
Oh, sorry, hab ich falsch verstanden:

Abgesehn davon, daß es eigentlich besser sind, wenn seit Vista und vorwiegend Windows 7, die Hauptform sich in der Taskbar befindet und nicht die versteckte Application-Form (ist für die Messagebehandlung und Co.).
Ich dachte eigentlich, das mit der Messagebehandlung wäre auf die Mainform bezogen. Jetzt nochmal richtig rum formuliert: Was ist denn besser, wenn sich die Hauptform in der Taskbar befindet?


[OT] Hättest du kein Turbo Delphi, dann hätte man sich da etwas über die OTA (Open Tools API) basteln können, aber da du keine BPLs installieren darfst, geht dieser Weg nicht.[/QUOTE]

Da steh ich jetzt auf dem Schlauch. Bei Turbo-Delphi gibts doch das "normale" Verhalten, oder was meinst du, was man basteln könnte?

Guido.

Geändert von Guido Eisenbeis ( 7. Nov 2011 um 14:29 Uhr) Grund: Formulierung korrigiert.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#9

AW: Form2 NICHT modal anzeigen - XE2

  Alt 7. Nov 2011, 14:39
Bei Alt+Tab, Win+Tab und in der Fenstervorschau der Taskleiste sieht man immer das Fenster, welches in der Taskbar registriert ist.
- ist das die Mainform, dann sieht man die Mainform
- ist das die Application.Form, dann sieht man nix (nur eine leere Form)

Du darfst doch beim TDE keine fremden BPLs installieren und um die OTA nutzen zu können, installiert man seine Codes eigentlich als BPL in die IDE rein. (ich wüßte jetzt keinen anderen Weg)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#10

AW: Form2 NICHT modal anzeigen - XE2

  Alt 7. Nov 2011, 14:41
Er will doch nicht das Verhalten in TDE ändern, sondern das in XE2.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:53 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