Neuigkeiten:

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

Mobiles Hauptmenü

Fenster verschwinden im Hintergrund // eigene Taskleiste bauen?

Begonnen von datekk, April 21, 2016, 12:29:49

⏪ vorheriges - nächstes ⏩

datekk

Hi,

für meine Datenbank nutze ich ein Hauptfenster, welches sich maximiert öffnet und über den ganzen Bildschirm reicht. Leider passiert es oft, dass (PopUp)Fenster hinter dem Hauptfenster verschwinden. Dann muss ich immer das Hauptfenster minimieren und dahinter nach dem Fenster suchen. Ist es daher möglich, dass offene Fenster auch in der Windows Taskleiste angezeigt werden oder wäre es möglich im Hauptfenster, in den Formularfuß eine eigene Taskleiste einzubauen, in der jedes offene Fenster z.B. durch eine Schaltfläche angezeigt wird. Drückt man dann auf diese Schaltfläche, soll sich das Fenster im Vordergrund wieder einblenden.

Was meint Ihr?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MaggieMay

Hallo,

du könntest die geöffneten Fenster über ein entsprechendes Menü im Ribbon erreichen.
Freundliche Grüße
MaggieMay

markusxy

Ich habe grad versucht das nachzuvollziehen.
Irgendwie ist es mir nicht möglich, ein Popup Fenster hinter das Hauptfenster zu bringen. Ist mir ein Rätsel wie das geht.

Da ich oft mehre Fenster übereinander habe, habe ich mir auch in einen Popup Fenster eine "Taskleiste" erstellt. Die befindet sich am linken Bildschirmrand (2 mm breit). Wenn ich mit der Maus drauf gehe klappt sich die "Taskleiste" nach dem Timout ein und ich kann aus den Formularen wählen. Danach verschiebt sich die "Taskleiste" wieder an den Bildschirmrand - so wie man es von den Windows Taskleiste gewohnt ist.
Wobei ich das Hauptfenster sowieso ausblende und nur ein generelles Menüfenster (popup) verwende, das sich ebenso (bei Wunsch) an den oberen Bildschirmrand verschiebt.

@Maggie
müsste man da ein eigenes Ribbon erstellen, oder ist das ein Standard Ribbon?

LG Markus

datekk

@markus888: Mit Hauptfenster meine ich nicht das Access-Systemfenster, sondern ein Formular, welches sozusagen das Eintrittsfenster zu meiner Anwendung ist. Es passiert öfter, dass Berichte oder andere Fenster zwischen das Systemfenster und mein Hauptfenster geraten. Und das ist dann nicht so schön.

Wie und in welcher Form erscheinen die Fenster auf Deiner Eigenbau Taskleiste? Kannst Du mal Code posten?

@Maggie: An ein eigenes Ribbon habe ich auch schon gedacht. Das ist aber erst irgendwann in der überüberübernächsten Version meiner Anwendung geplant. :) Haber ich habs aufm Zettel :)
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

markusxy

Zitat von: datekk am April 22, 2016, 09:14:25
@markus888: Mit Hauptfenster meine ich nicht das Access-Systemfenster, sondern ein Formular, welches sozusagen das Eintrittsfenster zu meiner Anwendung ist. Es passiert öfter, dass Berichte oder andere Fenster zwischen das Systemfenster und mein Hauptfenster geraten. Und das ist dann nicht so schön.

Wie und in welcher Form erscheinen die Fenster auf Deiner Eigenbau Taskleiste?

Das ist derzeit ein Prototyp.
Ein einfaches Formular mit allen ansteuerbaren Formularen in einem Recordset (bei mir ADO, damit ich nicht in die DB schreiben muss).
Mit Klick auf einen Form Namen wird das Form angezeigt.
Dafür verwende ich die API Funktion SetWindowPos (Um die Fenster in der Z-Order nach oben zu bringen).

LG Markus

datekk

 :o

Ok. Wieso die API SetWindowsPos? Kann das nicht Access intern geklärt werden? Habe irgendwo gelesen, dass die entsprechenden Fenster entweder mit Setfocus in den Vordergrund kommen, oder wenn Visible auf False und dann wieder auf True gesetzt wird.
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

markusxy

#6
Zitat von: datekk am April 22, 2016, 11:49:49
Ok. Wieso die API SetWindowsPos? Kann das nicht Access intern geklärt werden? Habe irgendwo gelesen, dass die entsprechenden Fenster entweder mit Setfocus in den Vordergrund kommen, oder wenn Visible auf False und dann wieder auf True gesetzt wird.

Mach so, wie es für dich am einfachsten ist. Access ruft dann ja auch wieder eine API auf. Für mich ist es einfacher wenn ich weiß was passiert. Es gibt auch verschiedenen API die etwas ähnliches tun.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms633545(v=vs.85).aspx
LG Markus

Set Focus geht natürlich genauso, SetWindowsPos bietet noch zusätzliche Möglichkeiten. Das ist auch schon alles. Set Focus entspricht eher der API SetActiveWindow.