XbpCrt und XbpCrt - Was mache ich falsch ? [erledigt]

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
Benutzeravatar
Bruno
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 103
Registriert: So, 16. Apr 2023 23:11
Wohnort: Lauterbach
Hat sich bedankt: 30 Mal
Danksagung erhalten: 4 Mal

XbpCrt und XbpCrt - Was mache ich falsch ? [erledigt]

Beitrag von Bruno »

Hallo,
ich rufe über einen Button ein XbpCrt Fenster auf,

Code: Alles auswählen

    oBtn:activate := {|| ButtonAus(aChildlist),StartBild(),ButtonAn(aChildlist) }
Wenn ich jetzt in dem aufgerufenen Fenster einen Button habe, der dieses Fenster schließen soll und wieder zurück zum vorherigen Fenster springt um dort weiterzumachen, bekomme ich zwar das aufgerufene Fenster weg, aber er macht nicht beim Aufruf weiter.

Code: Alles auswählen

#include "Directry.ch"
#include "Appevent.ch"
#include "xbp.ch"
#include "Common.ch"
#include "inkey.ch"

#pragma library("XppUi2")


#define DEF_ROWS       25
#define DEF_COLS       80
#define DEF_FONTHEIGHT 32
#define DEF_FONTWIDTH   16

PROCEDURE Startbild
    LOCAL oXbp
    LOCAL oBtn
    local cKey
    LOCAL oCrt
    LOCAL aChildList
    LOCAL aSizeDesktop, aPos
    LOCAL nPos1, nPos2
    LOCAL nEvent

        aSizeDesktop    := AppDesktop():currentSize()

        aPos            := { (aSizeDesktop[1]-(DEF_COLS * DEF_FONTWIDTH))  /2, ;
                             (aSizeDesktop[2]-(DEF_ROWS * DEF_FONTHEIGHT)) /2  }
      // XbpCRT-Fenster erzeugen
        oCrt := XbpCrt():New ( NIL, NIL, aPos, DEF_ROWS, DEF_COLS )
        oCrt:FontWidth  := DEF_FONTWIDTH
        oCrt:FontHeight := DEF_FONTHEIGHT
        oCrt:title      := "StartBild"
        oCrt:FontName   := "Alaska Crt"
        oCrt:border     := XBPDLG_NO_BORDER
        oCrt:create( AppDesktop() )

      // Presentation Space initialisieren
        oCrt:PresSpace()

      // XbpCrt wird aktives Fenster und Ausgabeger„t
        SetAppWindow ( oCrt )
        oXbp:=SetAppWindow()

        nPos1:=oCrt:XSize/2
        nPos2:=oCrt:YSize/2

        SetColor("gr+/bg")

        CLS

    oBtn := XbpPushButton():new( oCrt, , {nPos1+10 ,nPos2-30} )
    oBtn:caption := "Hallo"
    oBtn:autoSize := .T.
    oBtn:activate:= {|| AppEnde(oCrt) }
    oBtn:create()

    aChildlist:=oCrt:childlist()

    DO WHILE nEvent <> xbeP_None
        nEvent := AppEvent( @mp1, @mp2, @oXbp, 0 )

        oXbp:handleEvent( nEvent, mp1, mp2 )
    ENDDO
RETURN

PROCEDURE AppEnde(oCrt)
    oCrt:destroy()

RETURN
Ich muß irgend etwas übersehen haben, ich komme nicht weiter.
Zuletzt geändert von Bruno am Do, 11. Mai 2023 23:10, insgesamt 1-mal geändert.
Gruss Bruno
Xbase++ 1.9.355 ohne eExpress
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: XbpCrt und XbpCrt - Was mache ich falsch ?

Beitrag von AUGE_OHR »

hi Bruno,
Bruno hat geschrieben: Do, 11. Mai 2023 12:05Ich muß irgend etwas übersehen haben, ich komme nicht weiter.
in AppEnde() wird zwar das oCrt Object "zerstört" aber damit "verlässt" du nicht die Event Schleife :!:
gruss by OHR
Jimmy
Benutzeravatar
Bruno
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 103
Registriert: So, 16. Apr 2023 23:11
Wohnort: Lauterbach
Hat sich bedankt: 30 Mal
Danksagung erhalten: 4 Mal

Re: XbpCrt und XbpCrt - Was mache ich falsch ?

Beitrag von Bruno »

AUGE_OHR hat geschrieben: Do, 11. Mai 2023 19:36 hi Bruno,
Bruno hat geschrieben: Do, 11. Mai 2023 12:05Ich muß irgend etwas übersehen haben, ich komme nicht weiter.
in AppEnde() wird zwar das oCrt Object "zerstört" aber damit "verlässt" du nicht die Event Schleife :!:
Danke Jimmy,

Code: Alles auswählen

PROCEDURE AppEnde(oCrt)
    oCrt:destroy()
    PostAppEvent( xbeP_Close )
RETURN
:banghead: :banghead: :banghead:
Gruss Bruno
Xbase++ 1.9.355 ohne eExpress
Antworten