AGB  ·  Datenschutz  ·  Impressum  







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

TColorDialog - Fenster verschwindet

Ein Thema von haentschman · begonnen am 3. Feb 2012 · letzter Beitrag vom 3. Feb 2012
Antwort Antwort
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#1

TColorDialog - Fenster verschwindet

  Alt 3. Feb 2012, 20:21
Hallo alle...

ich komme mal wieder aus dem Staunen nicht heraus... Bei:
Delphi-Quellcode:
dlgColor:= TColorDialog.Create(nil);
try
  if dlgColor.Execute then pnlColorLine.Color:= dlgColor.Color;
finally
  dlgColor.Free;
end;
... passiert folgendes:
- mein modales Fenster woraus der Dialog aufgerufen wird verschwindet
- Dialog erscheint
- Nach dem Beenden des Dialogs ist das modale Fenster wieder da

* Dialog auf die Form gelegt... Ergebnis gleich
* verschiedene BorderStyles des modalen Fensters... Ergebnis gleich

wer kann mich erhellen ?

Nachtrag:
Ha... mein modales Fenster verschwindet hinter der Main Form Wie das denn ?

PS: StayOnTop ist nicht die Lösung da dann der ColorDialog hinter dem modalen Fenster liegt.

Nachtrag2:
- mehrere verschiedene Dialogs ausprobiert...Ergebnis gleich
- bei TOpenPictureDialog kommt das Fenster nichtmal von allein wieder. Läßt sich aber durch Klick nach vorn holen
- mit D2007 ist das alles normal wie erwartet

Ich hasse solche Sachen. Die Kosten Unmengen an kostbarer Zeit !
Miniaturansicht angehängter Grafiken
dialog.png   modal.png  

Geändert von haentschman ( 3. Feb 2012 um 20:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: TColorDialog - Fenster verschwindet

  Alt 3. Feb 2012, 21:08
Und so?
Delphi-Quellcode:
dlgColor := TColorDialog.Create(nil);
try
  if dlgColor.Execute(Application.MainFormHandle) then pnlColorLine.Color := dlgColor.Color;
finally
  dlgColor.Free;
end;
(bzw. das Handle der Form, in deren Kontext das aufgerufen wird)

Wenn du keinen Z-Beziehung angibst, dann wird halt nicht unbedingt das genommen, was du gerne hättest
und schon kann sich der Dialog an eine andere Form hängen und diese direkt hinter sich ziehen.
(also vor die gewünschte Form, welche in deinem Fall anscheinend die MainForm ist)


Wenn ich das richtig gehört/verstanden hab, dann haben sich irgendwann in 2009/2010 die Z-Beziehungen verändert.
So bleiben z.B. alle erstellten Fenster standardmäßig immer vor der MainForm, selbst wenn die MainForm den Fokus bekommt.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 3. Feb 2012 um 21:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#3

AW: TColorDialog - Fenster verschwindet

  Alt 3. Feb 2012, 21:16
danke...
ich hatte auch dlgColor.Execute(Self.Handle) ausprobiert. Wobei Self das Einstellungsfenster ist woraus der Dialog aufgerufen wird.

* auch bei
dlgColor.Execute(Application.MainFormHandle) Ergebnis ... Einstellungen verschwinden

...ich glaube ich mache mir ne Buddel Roten auf ... hat ja alles keinen Sinn. Was kommen da noch für Probleme !

Nachtrag:
nach diversem Lesen habe ich in der Projektdatei MainFormOnTaskBar:= False gesetzt. Uns Schwupps... alles normal

Soweit ich aber gelesen habe ist MainFormOnTaskBar:= True Pflicht seit Vista ...

Wer hat die zündende Idee ?

Auszüge Delphi Hilfe:
Zitat:
MainFormOnTaskBar muss true sein, damit die Aero-Effekte aus Windows Vista verwendet werden können. Dazu zählen: LiveTaskbar-Miniaturansichten, dynamische Fenster, Windows-Flip und Windows-Flip-3D.
.
.
.
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.
...wie kriegt man den 2. Part eindeutig geregelt ?

LÖSUNG:
http://www.delphipraxis.net/162976-m...showmodal.html
wie in diesem Beitrag #9...in der Projektdatei...
Delphi-Quellcode:
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.ModalPopupMode:= pmExplicit;
Da ich auch mit pmExplizit im Objektinspector der Forms ohne Erfolg experimentiert hatte konnte ich es nicht wirklich glauben. Aber es wirkt...

Danke an Alle... oder ausnahmsweise mal an mich

Geändert von haentschman ( 3. Feb 2012 um 21:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: TColorDialog - Fenster verschwindet

  Alt 3. Feb 2012, 22:22
Hmmmmm.
Nja, *gratulier*.

MainFormOnTaskBar ist nicht unbedingt Pflicht, aber es macht sich besser, vorallem in Bezug auf Aero.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#5

AW: TColorDialog - Fenster verschwindet

  Alt 3. Feb 2012, 22:25
Zitat:
Nja, *gratulier*.
Ich verstehe das mal als Kompliment
  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 12:06 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