Seite 1 von 1

wieso geht ESC dort hin ... [erledigt]

Verfasst: Fr, 07. Dez 2018 6:51
von AUGE_OHR
moin,

in einer CLASS SysForm FROM XbpDialog hab ich einen weiteren XbpDialog als MDI-Client

Code: Alles auswählen

METHOD SysDlg:Action(cDLL,cVER)
   oDlg := XbpDialog():New(::drawingArea,,{0,0}, aSize,,.F.)
   oDlg:close := { || lExit := .T. }
auf dem sind nun viele Buttons.

Code: Alles auswählen

   bBlock := ::MakeBlock("ShowBig",nIcon,oIcon,cDLL)
   oPB:activate := &(bBlock)
der Button ruft im Codeblock die Procedure ShowBig() auf und zeigt ein neues "freies" Fenster an.

Code: Alles auswählen

   oDlg := XbpDialog():new( AppDesktop(),,,,, .F.)
die Eventschleife ist praktisch gleich (Main, MDI-Client, "freie" Fenster)

Code: Alles auswählen

   DO WHILE !lExit = .T.
      nEvent := AppEvent ( @mp1, @mp2, @oXbp )
      DO CASE
         CASE nEvent == xbeP_Keyboard .AND. mp1 == xbeK_ESC
            EXIT
      OTHERWISE
         oXbp:HandleEvent ( nEvent, mp1, mp2 )
      ENDCASE
   ENDDO
mit ESC verlässt er die Schleife.

nun clicke ich in das MDI-Client Fenster mit den Buttons während noch "freie" Fenster geöffnet sind.
statt das der MDI-Client Dialog schliesst tun es die "freien" Fenster bei ESC ... hm ... wieso :?:

wenn ich die "freien" Fenster als Thread starte funktioniert ESC immer in "dem" Fenster.

p.s. real Keyboard

Re: wieso geht ESC dort hin ...

Verfasst: Fr, 07. Dez 2018 10:49
von ramses
Du solltest vielleicht noch einbauen dass ESC nur die Eventloop des aktiven (Focusierten) Fensters schliesst.

Gruss Carlo

Re: wieso geht ESC dort hin ...

Verfasst: Fr, 07. Dez 2018 11:15
von georg
Oder es ganz einfach mit eigenen Threads versuchen?

Re: wieso geht ESC dort hin ...

Verfasst: Fr, 07. Dez 2018 18:08
von mikehoffmann
die Eventschleife ist praktisch gleich (Main, MDI-Client, "freie" Fenster)
Hast Du in jedem Teilchen eine Event-Schleife? Wenn ja, ist das der Grund.

Re: wieso geht ESC dort hin ...

Verfasst: Fr, 07. Dez 2018 20:26
von AUGE_OHR
hi,

hab ich doch geschrieben das es im Thread funktioniert ... und da ist mir auch klar geworden was vorher passiert ist.

wenn ich per Button den neuen Dialog geöffnet hatte konnte ich weiter Button aktivieren -> neue Dialoge.
nun war am Anfang keine Eventloop im Source ( Fullview aus Imageview Demo ) und er machte bei zurück gehen das Fenster immer zu ... also eine Eventloop

jetzt steckt er aber im letzten Fenster das ich aufgerufen habe ... egal in welches Fenster ich klicke #-o
also muss er erst die Eventloop verlassen usw. bevor ich wieder beim MDI-Client bin (mit den Buttons)

Re: wieso geht ESC dort hin ... [erledigt]

Verfasst: Sa, 08. Dez 2018 8:50
von mikehoffmann
Was verstehst Du unter Event Loop? Ich verstehe nur Railway Station.

Re: wieso geht ESC dort hin ... [erledigt]

Verfasst: Sa, 08. Dez 2018 9:53
von Tom
Geht mir ähnlich. :dontknow: