AGB  ·  Datenschutz  ·  Impressum  







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

mal wieder StayOnTop

Ein Thema von tinibeenie · begonnen am 28. Aug 2005 · letzter Beitrag vom 19. Okt 2005
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#11

Re: mal wieder StayOnTop

  Alt 19. Okt 2005, 05:40
das, das fenster dann nicht im Vordergrund liegt hängt höchstwahrscheinlich damit zusammen das, das fenster nochmal neu creiert wird (RecreateWnd). Man sollte also sicherstellen das solche Sachen wie "FormStyle", "Position" etc. des Formulars auf Standard stehen damit eben sowas nicht passiert. Oder eben diese Anweisungen erst dann ausführen wenn all diese Sachen abgearbeitet wurden (also frühestens nach dem ersten OnShow)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#12

Re: mal wieder StayOnTop

  Alt 19. Okt 2005, 10:49
das ist ein fenster, was je nach wunsch angezeigt werden kann. es wird mit .Hide versteckt und mit .Show wieder angezeigt...
Gruß Fabi
  Mit Zitat antworten Zitat
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#13

Re: mal wieder StayOnTop

  Alt 19. Okt 2005, 14:41
also bin bald am verzweifeln

habe mal ein bspprog angehängt.
die form1 hat keinen taskbareintrag.
ruft man Form2.Show auf, hat ist es zwar "Immer im Vordergrund", aber hat einen Taskbareintrag. dieser taskbareintrag soll jedoch auch nicht vorhanden sein. Kann mir jemand helfen?
Angehängte Dateien
Dateityp: rar test_104.rar (170,6 KB, 14x aufgerufen)
Gruß Fabi
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#14

Re: mal wieder StayOnTop

  Alt 19. Okt 2005, 14:49
Von meinen hüpfenden Viechern:
Delphi-Quellcode:
procedure TBlobForm.FormShow(Sender: TObject);
begin
  // Setzt Fenster an die vorderste Front
  SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height,
    SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
  // Setzt Parent auf den Desktop
  SetWindowLong(Handle, GWL_HWNDPARENT, 0);
  // Versteckt das Fenster in der Taskleiste
  SetWindowLong(Handle, GWL_EXSTYLE,
    GetWindowLong(Handle, GWL_EXSTYLE) or
    WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
end;
Da das aber mein erster richtiges Projekt mit direkter WinAPI-Nutzung war, bin ich mir nicht sicher, ob ich dieser damit nicht irgendwie ans virtuelle Schienbein trete .
Funktionieren tut es aber.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#15

Re: mal wieder StayOnTop

  Alt 19. Okt 2005, 14:54
hm. habs versucht aber genau das gleiche prob....

[Edit]
Die Viecher sind genial
Gruß Fabi
  Mit Zitat antworten Zitat
Benutzerbild von holliesoft
holliesoft

Registriert seit: 4. Apr 2005
Ort: Gau-Algesheim
250 Beiträge
 
FreePascal / Lazarus
 
#16

Re: mal wieder StayOnTop

  Alt 19. Okt 2005, 15:22
Hallo,

liest denn keiner mein Posting oben dazu? Ich hatte 2 Links gepostet...

Zitat von dem einen Link:

You may try adding Application->RestoreTopMosts(); to the OnDeactivate
event handler.

Also, bei TApplication.OnDeactivate sollte ein Application.RestoreTopMosts ausgeführt werden. Dann reicht auch

Delphi-Quellcode:
SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height,
    SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
bei der Form2 und es gibt keinen Eintrag in der Taskbar. Hab das so bei meinem Programm Klebezettel für die Notizen gemacht und es funktioniert einwandfrei

Gruß
Patrick
Patrick Semmler
  Mit Zitat antworten Zitat
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#17

Re: mal wieder StayOnTop

  Alt 19. Okt 2005, 19:18
naja,

das funktioniert innerhalb der Anwendung aber nicht überall. mit diesem Code ist Form2 innerhalb der Anwendung StayonTop und das auch ohne Taskbareintrag, aber damit ist nicht das forumlar für windows "Immer im Vordergrund"....


habs eben getestet
Gruß Fabi
  Mit Zitat antworten Zitat
Benutzerbild von holliesoft
holliesoft

Registriert seit: 4. Apr 2005
Ort: Gau-Algesheim
250 Beiträge
 
FreePascal / Lazarus
 
#18

Re: mal wieder StayOnTop

  Alt 19. Okt 2005, 19:54
Hi n0b0dy,

hast Du denn beim TApplication.OnDeactivate ein

Application.RestoreTopMosts ausgeführt?
  Mit Zitat antworten Zitat
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#19

Re: mal wieder StayOnTop

  Alt 19. Okt 2005, 20:24
ja hab ich. will trotzdem net. ich habe die befürchtung dass meine style komponente (sry, vergessen zu erwähnen) das irgendwie verändert...
ich mach den style mal weg und teste es nochmal.
Gruß Fabi
  Mit Zitat antworten Zitat
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#20

Re: mal wieder StayOnTop

  Alt 19. Okt 2005, 21:31
also, habs nochmal probiert und holliesoft's lösung funzt einwandfrei.
das lag an meinem style, der das wieder rückgängig gemacht hat.

also einfach im OnShow folgendes ausführen ...
Delphi-Quellcode:
SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height,
    SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
... und im Application.OnDeactivate das hier ausführen:
Application.RestoreTopMosts
Ciao
Gruß Fabi
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 10:43 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