Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Schwebendes Fenster ohne acDialog

Begonnen von Gockel67, Dezember 26, 2024, 11:33:29

⏪ vorheriges - nächstes ⏩

Gockel67

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

MzKlMu

Hallo,
Zitatich habs jetzt schon mit Eigenschaften und so versucht ...
Stelle die Eigenschaften PopUp und Gebunden auf Ja.
Gruß Klaus

Gockel67

Hallo Klaus,

genau das hab ich ja versucht. Aber dann kann ich im Hauptfenster nichts mehr anklicken.

MzKlMu

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.
Gruß Klaus

PhilS

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.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

knobbi38

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

Gruß
Knobbi38

Gockel67

#6
@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.

PhilS

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?
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Gockel67

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.

knobbi38

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


PhilS

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.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

knobbi38

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.




Gockel67

Das zweite Fenster bleibt dann aber nicht im Vordergrund wenn das erste Fenster im Vollbildmodus ausgeführt wird

knobbi38

#13
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://www.activevb.de/cgi-bin/apiwiki/SetWindowPos

Gockel67

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.