Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Gockel67 am Dezember 26, 2024, 11:33:29

Titel: Schwebendes Fenster ohne acDialog
Beitrag von: Gockel67 am Dezember 26, 2024, 11:33:29
Moin Gemeinde,

ich habs jetzt schon mit Eigenschaften und so versucht aber ich bekomme folgendes nicht hin:

Ein Popup-Formular soll schwebend über dem Hauptformular immer zu sehen sein auch wenn Klicks im Hauptformular stattfinden. Aber leider verschwindet das Fenster dann natürlich immer.

Wie kann ich beide Fenster immer im Vordergrund halten?

Schöne Weihnachten
Jörg
Titel: Re: Schwebendes Fenster ohne acDialog
Beitrag von: MzKlMu am Dezember 26, 2024, 11:39:03
Hallo,
Zitatich habs jetzt schon mit Eigenschaften und so versucht ...
Stelle die Eigenschaften PopUp und Gebunden auf Ja.
Titel: Re: Schwebendes Fenster ohne acDialog
Beitrag von: Gockel67 am Dezember 26, 2024, 11:45:32
Hallo Klaus,

genau das hab ich ja versucht. Aber dann kann ich im Hauptfenster nichts mehr anklicken.
Titel: Re: Schwebendes Fenster ohne acDialog
Beitrag von: MzKlMu am Dezember 26, 2024, 11:55:37
Hallo,
ich bin nicht sicher, ob das überhaupt möglich ist.

Die Formulare dürfen beide nicht im Vollbild angezeigt werden, nur dann kannst Du den Fokus wechseln, ohne Einfluss auf das andere Formular. Aber schwebend über dem Hafo geht mMn nur mit den genannten Eigenschaften.
Titel: Re: Schwebendes Fenster ohne acDialog
Beitrag von: PhilS am Dezember 26, 2024, 12:49:53
Zitat von: MzKlMu am Dezember 26, 2024, 11:39:03Stelle die Eigenschaften PopUp und Gebunden auf Ja.
PopUp=Ja, Modal=Nein
Damit sollte das gewünscht Verhalten bereits gegeben sein.

Zitat von: MzKlMu am Dezember 26, 2024, 11:55:37Die Formulare dürfen beide nicht im Vollbild angezeigt werden, nur dann kannst Du den Fokus wechseln, ohne Einfluss auf das andere Formular.
Das spielt eigentlich mit den obigen Einstellungen keine Rolle. Allerdings würde das PopUp-Form im Vollbildmodus alles auf dem Bildschirm überdecken; das macht also nur bei mehreren Monitoren Sinn.
Titel: Re: Schwebendes Fenster ohne acDialog
Beitrag von: Knobbi38 am Dezember 26, 2024, 15:43:53
Hallo Jörg,

das kann nur mit einem Formular Popup/Ungebunden gelingen und zusätzlich müßte man die TOPMOST Einstellung des Formulars per API ändern.

Ungetestet hier ein Beispiel gefunden, mit dem es eigentlich funktionieren sollte:
https://www.access-programmers.co.uk/forums/threads/keep-form-on-top.134899/post-624931 (https://www.access-programmers.co.uk/forums/threads/keep-form-on-top.134899/post-624931)

Gruß
Knobbi38
Titel: Re: Schwebendes Fenster ohne acDialog
Beitrag von: Gockel67 am Dezember 27, 2024, 10:42:36
@knobbi38 Ganz lieben Dank an dich. Das ist genau das was ich gesucht habe.

P.S. Leider etwas zu früh gefreut. "Methode oder Datenobjekt nicht gefunden"
Bei folgender Teil beschwert er sich.

Screen.TwipsPerPixelX wobei .TwipsPerPixelX markiert ist.
Titel: Re: Schwebendes Fenster ohne acDialog
Beitrag von: PhilS am Dezember 27, 2024, 11:18:42
Zitat von: Gockel67 am Dezember 27, 2024, 10:42:36Das ist genau das was ich gesucht habe.
Warum? Du hattest vorher nur geschrieben, dein PopUp-Formular soll über den Hauptformular zu sehen sein. Von anderen Anwendungen war bisher nie ausdrücklich die Rede. - Ist das also ausdrücklich gewünscht, dass eines oder beide deiner Formulare auf im Vordergrund vor anderen Anwendungen sein soll?
Titel: Re: Schwebendes Fenster ohne acDialog
Beitrag von: Gockel67 am Dezember 27, 2024, 11:34:52
Hallo Phils,

vielleicht haben wir aneinander vorbeigeredet.
'Ein Popup-Formular soll schwebend über dem Hauptformular immer zu sehen sein' Beide sollen bedienbar sein.
Von anderen Anwendungen hab ich nichts geschrieben.
Titel: Re: Schwebendes Fenster ohne acDialog
Beitrag von: Knobbi38 am Dezember 27, 2024, 17:49:02
Zitat von: Gockel67 am Dezember 27, 2024, 10:42:36Screen.TwipsPerPixelX wobei .TwipsPerPixelX markiert ist.
Schau ich mir mal an. Wie gesagt: der Link war von mir ungetestet. Screen... deutet meist darauf hin, daß der Code  für VB geschrieben worden ist. Müßte man dann für Access/VBA umschreiben bzw. anpassen.

Gruß
Knobbi38

Titel: Re: Schwebendes Fenster ohne acDialog
Beitrag von: PhilS am Dezember 27, 2024, 17:58:15
Zitat von: knobbi38 am Dezember 27, 2024, 17:49:02Müßte man dann für Access/VBA umschreiben bzw. anpassen.
Aber warum denn? Was übersehe ich hier?
Das gewünschte Verhalten ist doch allein schon mit Popup=Ja und Modal=Nein (letzteres eh Standardwert) bereits gegeben.
Titel: Re: Schwebendes Fenster ohne acDialog
Beitrag von: Knobbi38 am Dezember 27, 2024, 21:28:24
Zitat'Ein Popup-Formular soll schwebend über dem Hauptformular immer zu sehen sein' Beide sollen bedienbar sein.
Dann reicht die Einstellung Popup/ungebunden, so wie es bereits von Philipp (#4) beschrieben worden ist. Die API mit TOPMOST kommt erst ins Spiel, wenn auch andere Anwendungen überlagert werden sollen, was ja hier offensichtlich nicht gefordert ist.



Titel: Re: Schwebendes Fenster ohne acDialog
Beitrag von: Gockel67 am Dezember 27, 2024, 21:45:11
Das zweite Fenster bleibt dann aber nicht im Vordergrund wenn das erste Fenster im Vollbildmodus ausgeführt wird
Titel: Re: Schwebendes Fenster ohne acDialog
Beitrag von: Knobbi38 am Dezember 29, 2024, 11:52:59
Kann es sein, daß du zwei Popup-Fenster hast, denn wenn das Anwendungsfenster maximiert ist, tritt der Effekt nicht auf.

Ich habe mir nochmal den API Aufruf angesehen und wenn ich das richtig sehe, brauchst du die Funktionen Screen... gar nicht. Die Größe des Popup-Fensters kannst du auch anders setzen.

Hier ein paar Hintergrundinformationen und Beispiele für SetWindowPos():
https://learn.microsoft.com/de-de/windows/win32/api/winuser/nf-winuser-setwindowpos (https://learn.microsoft.com/de-de/windows/win32/api/winuser/nf-winuser-setwindowpos)
https://www.activevb.de/cgi-bin/apiwiki/SetWindowPos (https://www.activevb.de/cgi-bin/apiwiki/SetWindowPos)
Titel: Re: Schwebendes Fenster ohne acDialog
Beitrag von: Gockel67 am Januar 04, 2025, 13:20:56
Asche auf mein Haupt. Tatsächlich war das Hauptfenster als PopUp deklariert. Wie das passieren konnte weiß ich auch nicht. Wahrscheinlich irgendwann mal falsch geklickt da es am Anfang richtig war. Jetzt funktioniert es.
Danke an alle für eure Hilfe.