AGB  ·  Datenschutz  ·  Impressum  







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

TOpenDialog mit StayOnTop

Ein Thema von luckystar85 · begonnen am 4. Jul 2007 · letzter Beitrag vom 8. Jul 2007
Antwort Antwort
luckystar85

Registriert seit: 21. Dez 2004
Ort: Rostock
138 Beiträge
 
Delphi 2009 Professional
 
#1

TOpenDialog mit StayOnTop

  Alt 4. Jul 2007, 14:31
Moin,

ich habe ein Programm welches ich mit folgendem Code immer als höchtes Fenster gesetzt habe.
Delphi-Quellcode:
Procedure TMainWinForm.SetDesktopParent;
Begin
  If ( fDesktopParent ) Then
    SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_NOACTIVATE Or SWP_NOMOVE Or SWP_NOSIZE)
  Else
    SetWindowPos(Handle, HWND_NOTOPMOST, Left, Top, Width, Height, SWP_NOACTIVATE Or SWP_NOMOVE Or SWP_NOSIZE);
End;
Diesen Code habe ich auch in alle anderen Fenster so eingefügt, das alle von mir geöffneten Fenster auch immer OnTop sind. Das funzt soweit auch ganz gut. Nur muss der User am Anfang eine Datei laden, damit er mit dem Prog arbeiten kann. Das Problem ist nur, das der OpenDialog dahinter auftaucht. Nun habe ich mir meinen eigenen OpenDialog geschrieben, abgeleitet von TOpenDialog. Dort habe ich das Execute überschrieben und dann ebenfalls diesen Code eingefügt. Da der OpenDialog aber kein Left, Top, Width und Height hat, habe ich die Werte erstmal mit starren Zahlen vorbelegt. Aber der OpenDialog kommt trotzdem nicht nach vorne. Habt ihr vielleicht eine Idee, wie man es schafft das er immer OnTop ist?
Michael Klüber
Delphi ist was solides und besteht nicht wie C/C++ Quelltext nur aus Kommentaren.
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#2

Re: TOpenDialog mit StayOnTop

  Alt 8. Jul 2007, 18:28
du musst auf das parent-Handle zugreifen.
weiterhin brauchst du left,width, height und top nicht zu definieren wenn du SWP_NoMove bzw. SWP_NoSize verwendest...

beispiel:

SetWindowPos(GetParent(self.Handle), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE); hab das allerdings im überschriebenen DoShow, ob das auch im exceute funktioniert, lass ich dich mal testen , ist aber imho zu zeitig...

HTH Frank
  Mit Zitat antworten Zitat
luckystar85

Registriert seit: 21. Dez 2004
Ort: Rostock
138 Beiträge
 
Delphi 2009 Professional
 
#3

Re: TOpenDialog mit StayOnTop

  Alt 8. Jul 2007, 18:41
Vielen Dank für deinen Hinweis. Im DoShow funktioniert das wunderbar.
Michael Klüber
Delphi ist was solides und besteht nicht wie C/C++ Quelltext nur aus Kommentaren.
  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 06:25 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