Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Form unschliessbar und onTop machen? (https://www.delphipraxis.net/119180-form-unschliessbar-und-ontop-machen.html)

Meflin 24. Aug 2008 13:05

Re: Form unschliessbar udn onTop machen?
 
Zitat:

Zitat von Novo
Hättest du dir das Video angesehen, wüsstest du auch, dass sowas geht.
Mein Gott, das haben so viele Programme als Option, es muss gehen!

Ach wirklich? Ich kenne keins, das nicht spätestens beim Click auf Desktop anzeigen nicht mehr "OnTop" wäre :wall:

Novo 24. Aug 2008 15:10

Re: Form unschliessbar udn onTop machen?
 
Zitat:

Zitat von Meflin
Ich kenne keins, das nicht spätestens beim Click auf Desktop anzeigen nicht mehr "OnTop" wäre :wall:

Muss es doch auch nicht :-(

Einfach ganz normal OnTop, dass neu geöffnete fenster und Programme DRUNTER sind reicht doch voll!

omata 24. Aug 2008 15:16

Re: Form unschliessbar udn onTop machen?
 
Zitat:

Zitat von Novo
Einfach ganz normal OnTop, dass neu geöffnete fenster und Programme DRUNTER sind!

Das erzählen wir dir hier doch die ganze Zeit...
Delphi-Quellcode:
Form.FormStyle:=fsStayOnTop;

Novo 24. Aug 2008 16:05

Re: Form unschliessbar udn onTop machen?
 
Zitat:

Zitat von omata
Zitat:

Zitat von Novo
Einfach ganz normal OnTop, dass neu geöffnete fenster und Programme DRUNTER sind!

Das erzählen wir dir hier doch die ganze Zeit...
Delphi-Quellcode:
Form.FormStyle:=fsStayOnTop;

Wenns denn funktionieren würde!
Denn:
ich zitiere mal:
Zitat:

Ich habe ein Problem.
Ich möchte ein Fenster mit FormStyle = fsStayOnTop anzeigen, damit es alle
anderen Applikationen überdeckt.
Dies funktioniert aber nur, wenn es sich um das Mainform der Anwendung
handelt.
Leider ist dies in meinem Programm nicht der Fall.
Und die Lösungen aus dem Internet:
Delphi-Quellcode:
SetWindowLong(Handle, GWL_HWNDPARENT, 0);
oder
SetForeGroundWindow(frmAnzeige.Handle);
funktionieren auch nicht!

SirThornberry 24. Aug 2008 16:24

Re: Form unschliessbar udn onTop machen?
 
Diese Lösungen funktionieren nicht weil sie eben etwas anderes machen als du willst. Das was du willst geht einfach nicht. Man kann nicht sicher stellen dass, das eigene Programm immer ganz oben bleibt.

Novo 24. Aug 2008 18:19

Re: Form unschliessbar udn onTop machen?
 
Zitat:

Zitat von SirThornberry
Diese Lösungen funktionieren nicht weil sie eben etwas anderes machen als du willst. Das was du willst geht einfach nicht. Man kann nicht sicher stellen dass, das eigene Programm immer ganz oben bleibt.

Schaut euch doch mal das Video an, siehe da geht es!
Ihr wollt mich irgendwie veräppeln oder sowas, ka.
Weil diese Option haben so viele Programme, ihr müsst das doch kennen!
Die Option: Im Vordergrund bleiben

omata 24. Aug 2008 18:24

Re: Form unschliessbar udn onTop machen?
 
Ja, es gibt solche Programme. Die benutzen dann fsStayOnTop. Dann hast du genau das Verhalten dieser Programme. Wenn du jetzt zwei solche Programme hast, die beide fsStayOnTop sind, haben beide die gleiche Berechtigung oben zu stehen und reagieren untereiander so wie normale Fenster. Beide stehen aber immer vor den normalen Fenstern. Was geht daran jetzt nicht?

extrem 24. Aug 2008 19:51

Re: Form unschliessbar udn onTop machen?
 
Zitat:

Zitat von Novo
??? natürlich geht das mit
Delphi-Quellcode:
Application.NormalizeAllTopMosts;
  SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);

...
klappt es ja auch einigermaßen.
Aber nciht so perfekt wie es sein sollte.

Schlechte Fehlerbeschreibung, wenn du den Code im onShow Ereignis des 2. Formulars ausführst, was ist dann nicht so perfekt?

Novo 24. Aug 2008 21:19

Re: Form unschliessbar udn onTop machen?
 
Zitat:

Zitat von extrem
Schlechte Fehlerbeschreibung, wenn du den Code im onShow Ereignis des 2. Formulars ausführst, was ist dann nicht so perfekt?

Ich habe jetzt folgenden Code:
Delphi-Quellcode:
procedure TfrmOnTopForm.chkBoxOnTopClick(Sender: TObject);
begin

if chkBoxOnTop.Checked=true then
begin
  SetWindowPos(frmOnTopForm.Handle, HWND_TOPMOST, 0, 0, 0, 0,
    SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
end
else
begin
  SetWindowPos(frmOnTopForm.Handle, HWND_NOTOPMOST, 0, 0, 0, 0,
    SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
end;
Application.NormalizeAllTopMosts;


end;
und wie gesagt, mancham geht es, manchmal nicht!
Dann muss man 3-4x haken setzen udn lösen, bis es wieder funktioniert!

ach erm und hier:
http://www.delphipraxis.net/internal...t.php?t=109459

wurde das ganze schonmal durchgekaut, aber wie gesagt, es funktioniert mal, und mal nicht!

dominikkv 24. Aug 2008 23:08

Re: Form unschliessbar udn onTop machen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
so, Novo, probiers mal so:
Delphi-Quellcode:
if chk1.Checked then
  FormStyle := fsStayOnTop else
  FormStyle := fsNormal;
Und damit wir uns nicht missverstehen hab ich mal nen Beispiel angehäng wie sowas aussieht


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:56 Uhr.
Seite 3 von 5     123 45      

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