PDA

Vollständige Version anzeigen : Ein Formular maximiert im Hintergrund halten


chbahn
11.09.2006, 20:16
Mit dieser Beispieldatenbank ist es möglich ein Formular, dauerhaft im maximierten Zustand (Auf die Größe des Accessfensters angepasst), im Hintergrund zu halten.
Da Access von Hause aus keine Möglichkeit bietet den Hintergrund zu ändern (Bild, Laufzeitinfos oder was auch immer), habe ich mir Gedanken darüber gemacht wie man das Problem lösen kann.
Bei der Lösung hat mir dieses Forum perfekt geholfen. Alle Problem und Infos die ich brauchte habe ich hier gefunden.
Wir die Datenbank geöffnet, wird automatisch das Formular geöffnet und dem Accessfenster angepasst. Wird zur Laufzeit die Größe des Acccessfensters verändert, so passt sich die Größe des Formulars automatisch an. Leider wird die Anpassung der Größe über einen Timer vorgenommen (es wird geprüft ob sich die Größe des Accessfensters verändert hat, wenn ja, dann ändere die Formulargröße). Wenn jemand eine bessere Idee hat, würde ich mich über eine Info freuen.
Des Weiteren ist ein kleines Menü eingebaut, über der zwei zusätzliche Formulare geöffnet werden können. An Hand dieser beiden Formulare kann man sehen, das die Aktivierungsreihenfolge beim schließen eines Formulars immer eingehalten wird. Damit meine ich das wenn drei Formulare geöffnet wurden (Form1, Form2, Form3) und das zuletzt geöffnete Formular schließe automatisch das vorletzte Formular wieder aktiv wird. Dazu ist nur je Formular kurzer Code notwendig.

Also viel Spaß beim verwenden dieser Beispieldatenbank.

hgd1
13.03.2008, 15:02
Hallo Christian,

erstmal vielen Dank für "Das Fenster im Hintergrund", so was suchte ich schon lange.
Aber trotzdem habe ich noch eine Frage. Ich habe auf diesem Hintergrund-Formular einige Befehlsschaltflächen, mit denen ich andere Formulare aufrufe.
Wenn ich nun ein Formular aufgerufen habe und ein zweites öffne, dann verschwindet das erste hinter das "Hintergrund Formular". Hast du eine Idee warum? Hier ist der Code mit dem ich die Furmulare öffne:Private Sub FormFilme_Click()
On Error GoTo Err_FormFilme_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "Filme anschauen"


DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_FormFilme_Click:
Exit Sub

Err_FormFilme_Click:
MsgBox Err.Description
Resume Exit_FormFilme_Click

End Sub

Vielleicht kannst du einen Fehler oder eine Ungereimtheit entdecken.

Was mich etwas wundert, wenn ich die Formulare über eine Symbolleiste aufrufe, ist Alles okay.

Ich sag schon mal Danke und hoffe du kannst mir einen Tip geben

Gruß

Schorsch

cpac
14.03.2008, 09:51
Moin Christian,

eine interessante Implementierung.

Ich stand vor einiger Zeit vor einem ähnlichen Problem: Ein Unterformular sollte immer den maximal möglichen Platz in einem maximierten (Haupt-)Formular ausfüllen. In diesem Fall habe ich die Eigenschaft Bei Größenänderung (Form_Resize()) des Hauptformulars verwendet, damit das Unterformular bei Änderung der Fenstergröße (und damit der Größe des Hauptformulars) entsprechend angepasst wird. Evtl. ist mein Ansatz ebenfalls interessant für Dich.

(Ich sehe gerade, dass der Beitrag von Christian schon fast anderthalb Jahre alt ist. Interessant finde ich ihn trotzdem ;-) )

chbahn
18.07.2008, 15:28
Hallo hgd1,

das hat den Grund, da die Funktion die die Fenster verwaltet, das geöffnete Fenster nicht kennt. Daher muss in jedes Formular welches geöffnet wird der nachfolgende Code stehen:

Private Sub Form_Activate()
Forms_Add_Form Me.Form.Name
End Sub

Private Sub Form_Close()
Forms_Delete_Form Me.Form.Name
End Sub

Gruß
Christian