Thema: Delphi Topmost für Form2

Einzelnen Beitrag anzeigen

Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#1

Topmost für Form2

  Alt 16. Feb 2007, 19:25
Hallo.

Ich will für mein derzeitiges Programm drei Dinge erreichen:

Probleme:

1) Das Programm soll NICHT in der Taskleiste angezeigt werden
2) Das Startformular soll NICHT angezeigt werden
3) Das zweite Formular soll angezeigt werden und zwar topmost

Lösungen:

zu 1) ShowWindow(Application.Handle, SW_HIDE);
zu 2) Application.ShowMainForm := false; (in der Projekt-Datei)
zu 3) ???

Ich habe alles mögliche ausprobiert was mir eingefallen ist. Nichts hat funktioniert.

Damit keine Missverständnisse entstehen: Ich habe extra ein einfaches Testprojekt erstellt, das lediglich Form1 un Form2 enthält. Kein anderes Form, keinen anderen Code (kein entfernen aus der Taskleiste, kein "Nichtangzeigen" der Mainform)! Nur zwei Forms und nichts anderes.

Ziel in dem Test-Projekt ist es, Form2 topmost anzuzeigen.

Zuerst habe ich natürlich die delphieigene Eigenschaft "FormStyle := fsStayOnTop" ausprobiert.
Dann mithilfe von CreateParams "Params.ExStyle := Params.ExStyle or WS_EX_TOPMOST;"
Dann SetWindowLong(Form2.Handle, GWL_EXSTYLE, GetWindowLong(Form2.Handle, GWL_EXSTYLE) or WS_EX_TOPMOST);
Dann SetWindowPos(Form2.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE);

Und alle möglichen und unmöglichen Kombinationen. Wie schon gesagt, nichts hat funktioniert.

Also, wie bekommt man eine "Nicht-Mainform" (z. B. Form2) topmost?

Guido.
  Mit Zitat antworten Zitat