AGB  ·  Datenschutz  ·  Impressum  







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

always on top trotz showmodal?

Ein Thema von napstar · begonnen am 5. Mär 2013 · letzter Beitrag vom 9. Mär 2013
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von napstar
napstar

Registriert seit: 22. Mär 2007
Ort: München
133 Beiträge
 
Delphi 2007 Architect
 
#1

always on top trotz showmodal?

  Alt 5. Mär 2013, 23:06
hi.. hab erneut ein problem..
ich habe ein programm das immer im vordergrund bleiben sollte.. das tut es auch... aber nur solange meine nächste form mit showmodal (show bringt mir leider nichts) anzeigen lasse..
meine frage.. kann ich es trotzdem immer im vordergrund behalten.. oder ist das nicht so einfach?
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

AW: always on top trotz showmodal?

  Alt 5. Mär 2013, 23:29
... aber nur solange meine nächste form mit showmodal (show bringt mir leider nichts) anzeigen lasse..
Du zwingst per ShowModal die eine Form in den Vordergrund und hängst die anderen quasi ab. Und nun soll der Zwang wieder weg sein, aber das muss trotzdem mit Showmodal gemacht werden, weil Show "leider" nichts bringt ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von napstar
napstar

Registriert seit: 22. Mär 2007
Ort: München
133 Beiträge
 
Delphi 2007 Architect
 
#3

AW: always on top trotz showmodal?

  Alt 5. Mär 2013, 23:42
haha... ja bisschen schwer zum erklären.. hat sich aber erledigt..
habs so hinbekommen.. zwar bisschen umständlich.. aber was sollst

Code:
SetWindowPos(Form1.Handle, HWND_TOPMOST,0,0,0,0,SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
den code in einen timer mit niedrigem interval..

mfg napstar
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: always on top trotz showmodal?

  Alt 6. Mär 2013, 00:15
Dir ist schon klar, dass du bei dem Stand das ShowModal Fenster in den Hintergrund zwingst, aber das ShowModal Fenster trotz dem den Fokus behält? Das Problem ist nur, dass wenn das ShowModal Fenster zufällig von deinem Vordergrund Fenster verdeckt wird und der Nutzer es nicht weiß, dass dadurch u. U. dein ganzes Programm blockiert wird?
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#5

AW: always on top trotz showmodal?

  Alt 6. Mär 2013, 01:55
Popov hat Recht. Warum rufst du das Fenster überhaupt Modal auf, wenn es das nicht sein soll?
Gruß
Cookie
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: always on top trotz showmodal?

  Alt 6. Mär 2013, 07:39
Genau so sehe ich das auch. Weg mit ShowModal und stattdessen

SetWindowPos(Form1.handle, HWND_TopMost, 0, 0, 0, 0, SWP_NoMove or SWP_NoSize or SWP_ShowWindow); Form1.Handle ersetzen durch das des gewünschten Stay-On-Top-Fensters.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#7

AW: always on top trotz showmodal?

  Alt 6. Mär 2013, 12:16
Ich hatte mal den Fall, das ich ein modales Fenster hatte und eine nichtmodale Statusanzeige als permanentes Popup-Fenster. Das wäre ein Szenario, wo ich auf das modale Fenster jetzt nicht so verzichten würde, da es das Hauptformular ist.

Das Statusfenster beschreibt einen Systemzustand, sodaß es selbst ontop sein sollte, wenn z.B. der Explorer über die Anwendung gelegt wird. Nervt zwar, ist aber notwendig.
  Mit Zitat antworten Zitat
Benutzerbild von napstar
napstar

Registriert seit: 22. Mär 2007
Ort: München
133 Beiträge
 
Delphi 2007 Architect
 
#8

AW: always on top trotz showmodal?

  Alt 6. Mär 2013, 14:29
alsoo.. die sache ist die...
mein programm läuft im vollbildmodus.. und ich nutze meine hauptform als hintergrund.. und es werden nacheinander verschiedene forms per showmodal angezeigt.. mein hintergrund ist immer im vordergrund (also vor allen anderen programmen).. und die anderen forms die später per showmodal angezeigt werden.. sollten immer vor dem hintergrund sein...
also wenn ich es nicht mit showmodal anzeigen lasse.. ist meine geöffnete form immer im hinter meiner mainform.. selbst wenn ich den formstyle in always on top ändere... also wenn ich ausversehn aufm hintergrund klicke, hab ich ein problem

ich hoffe ich konnte es diesmal besser erklären ^^


@codehunter.. das schau ich mir gleich an wenn ich zuhause bin.. thx

Geändert von napstar ( 6. Mär 2013 um 14:31 Uhr)
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#9

AW: always on top trotz showmodal?

  Alt 6. Mär 2013, 15:43
HWND_TOPMOST
HWND_SUPERTOPMOST
HWND_UBERSUPERTOPMOST

Ich würde mir generell überlegen die Dialoge und Fenster deiner im Vollbild laufenden Anwendung statt auf dem Screen auf der Form anzeigen zu lassen. Damit müsste sich doch das Problem erledigen, oder?
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: always on top trotz showmodal?

  Alt 7. Mär 2013, 14:58
Das Schöne an Windows war ja mal, dass man sich eben nicht mehr um das Leveling der einzenen Fenster kümmern musste. Sobald man aber anfängt, genau da wieder einzugreifen, wirds schwierig. Unter meinen Bekannten (selbst langjährige Delphianer) gilt der Grundsatz: Kombiniere nie fsStayOnTop mit ShowModal. Sonst hat man irgendwann ein "Access violation"-Fenster hinter dem Hauptfenster liegen und wundert sich, dass die gefühlte Endlosschleife gar nicht zu einem Stack Overflow führt...

Nachdem was sich jetzt hier so herauskristallisiert würde ich die Anwendung evtl. in ein MDI-Programm umdesignen, die einzelnen Unterfenster dann als MDI-Childs implementieren und schlicht mit BringToFront arbeiten. Dann kann man das Hauptformular Im Vollbild und fsStayOnTop laufen lassen oder eben HWND_TOPMOST. Die MDI-Childs werden immer "obendrauf hocken".
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  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 11:18 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