Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi fsStayOnTop funktionniert nicht? (https://www.delphipraxis.net/137932-fsstayontop-funktionniert-nicht.html)

BIOS-Crasher 31. Jul 2009 10:52


fsStayOnTop funktionniert nicht?
 
Hallo!
Ich habe mir ein kleines Programm gebastelt, welches mir an einer bestimmten Uhrzeit seine Form anzeigen soll und zwar immer im Vordergrund. Deshalb habe ich als FormStyle fsStayOnTop ausgewählt. Nur scheint das leider nicht zu funktionieren. Kann mir jemand helfen?

stahli 31. Jul 2009 11:02

Re: fsStayOnTop funktionniert nicht?
 
Herzlich willkommen BIOS-Crasher,

Deine Problembeschreibung ist etwas unscharf.

Ich gehe davon aus, dass Du das Formular extra noch öffnest. StayOnTop-Formulare stehen dann vor einfachen Formularen. Jedoch kann es andere StayOnTop-Formulare geben, die Deines überdecken.

Evtl. bringt Dich BrintToFront weiter...

Stahli

BIOS-Crasher 31. Jul 2009 15:00

Re: fsStayOnTop funktionniert nicht?
 
Zitat:

Zitat von stahli
Ich gehe davon aus, dass Du das Formular extra noch öffnest.

Genau es ist im Tray verborgen bis zu einer bestimmten Uhrzeit

Zitat:

Zitat von stahli
Evtl. bringt Dich BrintToFront weiter...

Leider nicht... Die Form kann noch immer von Fenstern wie Firefox überlagert werden...

patti 31. Jul 2009 15:21

Re: fsStayOnTop funktionniert nicht?
 
Steht die Eigenschaft FormStyle deiner Form von Anfang an auf fsStayOnTop, oder änderts du das erst zur Laufzeit? Und: Handelt es sich um das Hauptformular oder um ein zweites Formular?

Patti

rd3 31. Jul 2009 15:27

Re: fsStayOnTop funktionniert nicht?
 
Vielleicht hilft das weiter...

Delphi-Quellcode:
procedure PopUpMyWindow;
var
  Window: THandle;
begin
  Window := FindWindow(NIL, 'myAppXYZ');
  if Window <> 0 then
  begin
    ShowWindow(Window,SW_SHOWNORMAL);
    BringWindowToTop(Window);
  end
end;

procedure OnTimer(Sender: TObject);
begin
  if ... then
  PopUpMyWindow;
end;

BIOS-Crasher 9. Aug 2009 20:57

Re: fsStayOnTop funktionniert nicht?
 
Hi!
Leider hilft der gepostete Code nichts...
Das Formular ist das Hauptformular undschon von Anfang an fsStayOnTop

patti 9. Aug 2009 21:09

Re: fsStayOnTop funktionniert nicht?
 
Dann probier einfach mal folgenden Code beim Anzeigen des Formulars aus (z.B. im OnShow-Ereignis des Fensters, welches aufgerufen wird und immer vorne bleiben soll):

Delphi-Quellcode:
SetWindowPos(self.Handle, HWND_TOPMOST, Left, Top, Width, Height, 0);
mfG

Patti

PinKing2 9. Aug 2009 21:35

Re: fsStayOnTop funktionniert nicht?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

evtl. hilft Dir dieses kleine Beispielprojekt weiter.

Gruss,

Andy.

BIOS-Crasher 10. Aug 2009 15:57

Re: fsStayOnTop funktionniert nicht?
 
Hmm auch bei deinem Beispielprojekt bleibt bei mir das Fenster nicht on Top ...
Ebenso beim Code...

patti 10. Aug 2009 16:36

Re: fsStayOnTop funktionniert nicht?
 
Komisch :gruebel:. Dann brauchen wir wohl etwas mehr Informationen.
  • Was passiert genau? (Ich nehme an, das Fenster erscheint, bleibt aber nicht "TopMost" :?: )
  • Wie ruftst du das Fenster auf?
  • Wo rufst du das Fenster auf (aus einem anderen Formular raus,...) ?

Ohne etwas Quelltext von dir wird es wohl schwer werden, zu helfen. Am besten du zeigst mal die Stelle des Codes, wo du das andere Fenster aufrufst.

Zu meinem Vorschlag mit SetWindowPos: Wo hast du das verwendet?

Patti

PinKing2 10. Aug 2009 23:33

Re: fsStayOnTop funktionniert nicht?
 
Ja, komisch finde ich auch... :wink:

Ich hab jetzt schon einige Programme geschrieben, bei der die Form im Vordergrund
bleiben soll, und bei mir hat es immer so funktioniert. Die Form von Project1.exe
bleibt bei Dir NICHT im Vordergrund, wenn Du andere Programme aktivierst? Welche
Programme sind denn das, die die Form dann überdecken?

Gruss,

Andy.

himitsu 11. Aug 2009 05:18

Re: fsStayOnTop funktionniert nicht?
 
ich hatte vor kurzem auch soein Problem, hab da aber noch nicht weitergeforscht, aber es handelt sich um eine "normale" Delphi-Form, welche aber nicht bei Application registriert ist und wo es auch (noch) keine Hauptform im Programm gibt ... denke bis jetzt, daß es daran liegt, aber auch da war komisch, daß selbst ein Setzen des Styles via GetWindowLong absolut nix brachte :shock:
(speziell handelt es sich um diese Form > http://www.delphipraxis.net/internal...064535#1064535 )


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz