Wie kann ich feststellen, ob ein Delphi-Steuerelement derzeit sichtbar ist?

8

Ich brauche einen Weg, um für ein benutzerdefiniertes Steuerelement (abgeleitet von TCustomControl) festzustellen, ob es derzeit sichtbar ist. Ich spreche nicht von der Visible-Eigenschaft. Ich meine, ob es gerade auf dem Bildschirm angezeigt wird. Weiß jemand, wie man das macht?

    
Mason Wheeler 14.03.2009, 19:16
quelle

3 Antworten

15

Vor ein paar Jahren hatte ich das gleiche Problem für ein Formular: Ich suchte nach einer Möglichkeit festzustellen, ob ein Formular tatsächlich (auch nur teilweise) für den Benutzer sichtbar ist.
Insbesondere wenn es sichtbar sein sollte und Showing True war, aber das Fenster war eigentlich ganz hinter einem anderen.
Hier ist der Code, könnte es für eine WinControl angepasst werden ...

%Vor%     
François 16.03.2009, 18:39
quelle
2

Können Sie dem OnPaint-Ereignis Code hinzufügen? Dies wird sehr oft genannt und ich denke, es wird nur aufgerufen, wenn die Kontrolle tatsächlich gemalt wird (zB ist sichtbar in der Art, wie du meinst).

    
Toby Allen 14.03.2009 20:05
quelle
1

Ich denke, dafür ist TWinControl.Showing da. Ich bin mir nicht sicher, wie zuverlässig es ist.

    
Henk Holterman 14.03.2009 20:17
quelle