habe folgendes Problem. Ich rufe von einem Fenster über einen Button ein weiteres Fenster auf. Wenn ich das zweite Fenster über das X rechts oben schliesse, schliesst er das Fenster und arbeitet weiter. Im Beispiel gibt er eine MessageBox aus. Wenn ich allerdings das Fenster über einen Button schliessen will, kommt die MessageBox nicht. Was mache ich hier falsch? In der :close() methode des XbpDialogs steht das selbe drin wie in der activate() methode des XbpPushButton.
Hier der Quellcode:
Code: Alles auswählen
#include "appevent.ch"
#include "xbp.ch"
PROCEDURE AppSys()
RETURN
PROCEDURE Main()
LOCAL n := 1
oDlg1 := XbpDialog():new( ,, {50,30}, {300,200} )
oDlg1:title := "Parent is Application Window"
oDlg1:create()
oDlg1:close := {|| oDlg1:destroy()}
oPB := XbpPushButton():new(oDlg1, oDlg1, {10,10}, {80,25})
oPB:caption := "Test"
oPB:create()
oPB:activate := {|| Test(oDlg1, n)}
nEvent := 0
DO WHILE nEvent <> xbeP_Close
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
FUNCTION Test(oDlg1,n)
IF n == 1
CreateNewWindow()
MsgBox("Test")
ENDIF
RETURN
FUNCTION CreateNewWindow(oDlg1)
oDlg2 := XbpDialog():new(oDlg1 ,oDlg1, {200,30}, {300,200} )
oDlg2:title := "Parent is Application Window"
oDlg2:create()
oDlg2:close := {|| oDlg2:destroy()}
oPB := XbpPushButton():new(oDlg2, oDlg2, {10,10}, {80,25})
oPB:caption := "Schliessen"
oPB:create()
oPB:activate := {||oDlg2:destroy()}
nEvent := 0
DO WHILE nEvent <> xbeP_Close
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN