Form Verhalten wie modal?

28/03/2011 - 14:57 von Martin Eckel | Report spam
Hallo,

ich hàtte gerne eine Form im Vodergrund, welche sich wie eine modale
Form verhàlt, dh. das Hauptfenster im Hintergrund ist nicht anwàhl- und
benutzbar (also TOPMOST reicht nicht!).

Jedoch bringt mir die echte modale Form nichts, da der die Form
anzeigende Programmteil weiterlaufen soll.

Wie wird denn eine modale Form Windows-Intern erzeugt?

Gruß,
Martin
 

Lesen sie die antworten

#1 Heinz-Mario Frühbeis
28/03/2011 - 16:08 | Warnen spam
Martin Eckel dachte sehr stark über folgendes nach :
Hallo,

ich hàtte gerne eine Form im Vodergrund, welche sich wie eine modale Form
verhàlt, dh. das Hauptfenster im Hintergrund ist nicht anwàhl- und benutzbar
(also TOPMOST reicht nicht!).

Jedoch bringt mir die echte modale Form nichts, da der die Form anzeigende
Programmteil weiterlaufen soll.

Wie wird denn eine modale Form Windows-Intern erzeugt?



Wenn du "nur" eigene Fenster hast, dann ist TOPMOST schon ganz IO.
Nur solltest du deine anderen Fenster davon überzeugen, das sie,
solange dieser "TOPMOST-Flag" exisitiert, nichts zu melden haben im
Vordergrund.
Ich denke, da wàre ein Braodcast nicht schlecht.
Dim F as Form, FT As Form

Public Sub SetFlag(FT As From)
Dim nhWnd As Long
Dim C As Control
Set FT = Form"TOPMOST"
If FT Is Nothing Then
nhWnd = 0
Else
nhWnd = FT.hWnd
End If
For Each F in Forms
If Not F Is FT Then
F.Tag = nhWnd
For Each c in F.Controls
If F.Tag <> 0 Then
c.Enabled = False
Else
c.Enabled = True
End If
Next
End If
Next
End Sub

Dazu in einer Form:
In SubXY ->
If Not FT Is Nothing Then
If Me.hWnd <> FT.hWnd Then
Exit Sub ' oder eben filtern was darf
End If
End If

So in der Art würde ich es machen ... so ad hoc , impromptu.

Mit Gruß
Heinz-Mario Frühbeis

Ähnliche fragen