Entwickler-Ecke

Sonstiges (Delphi) - Immer OnTop


Popov - Di 01.04.03 17:01
Titel: Immer OnTop
Ich hab follgendes Problem: Ich hab ein Formular, das immer OnTop sein soll. Weiterhin hab ich ein zweites Formular das immer OnTop über dem Ersten sein soll. Und hier fangen die Probleme an. Sind beide OnTop gestellt, dann wechseln die sich im Vordegrung ab. Ist nur das Zweite on Top, dann wird das erste von anderen Fenstern verdeckt.

Natürlich kann ich mit einem Timer mein zweites Fenster immer nach vorne schicken, aber das ist nicht die feine Art.

Ich suche also eine Lösung die keine Notlösung ist.


UGrohne - Di 01.04.03 17:12

Eigentlich ist es ja so, dass nur, wenn das erste aktiviert wird, also OnActivate, das zweite in den Hintergrund rutscht. Dann könntest Du doch in diesem Ereignis Form2.BringToFront machen, oder nicht?

//Nachtrag: OK, vergiss es, hab was nicht bedacht, ich forsche grad mal


Motzi - Mi 02.04.03 07:43

Nim dem Formular, das zwar OnTop, aber unterhalb des anderen Formular sein soll im OnActivate den OnTop-Status weg und gib ihn ihm wieder im OnDeactivate. Ich würde hier allerdings nicht die Eigenschaft fsStayOnTop verwenden, da diese hier ein bisschen zu unflexibel ist. Nimm stattdessen direkt die API-Funktion SetWindowPos().


Aya - Sa 05.04.03 01:15

Hi,

wenn du das hinbekomme hast, sag mir mal bitte wie du es gemacht hast.. stehe grad vor demselben problem :)

Au'revoir,
Aya~


Delete - Sa 05.04.03 04:19

Motzi hat folgendes geschrieben:
Ich würde hier allerdings nicht die Eigenschaft fsStayOnTop verwenden, da diese hier ein bisschen zu unflexibel ist. Nimm stattdessen direkt die API-Funktion SetWindowPos().

Nicht unflexible. Ich darf mal zitieren:
Zitat:

Note: It is not advisable to change FormStyle at runtime.