German B4J Programmende

Discussion in 'German Forum' started by strupp01, Apr 14, 2017.

  1. strupp01

    strupp01 Active Member Licensed User

    Suche schon eine geraume Zeit einen Befehl, um ein B4J-Programm zu beenden, so dass die Form geschlossen wird. Habe bisher nur den Befehl 'ExitApplication' gefunden, der aber nicht das erhoffte Ergebnis bringt.
    Gibt es so einen Befehl oder wie geht das ? Evtl. Beschreibung mit 2-3 Zeilen posten.
     
  2. rboeck

    rboeck Well-Known Member Licensed User

    Wo ist das Problem? ich habe ExitApplication im Sub Mainform_Closed Event stehen. Welches nicht erhoffte Ergebniss tritt da auf?
     
  3. strupp01

    strupp01 Active Member Licensed User

    Wie rufe ich das Sub MainForm_CloseRequest (EventData As Event) aus dem Programm auf ?
     
  4. DonManfred

    DonManfred Expert Licensed User

    Folgendes funktioniert bei mir problemlos um die App zu beenden.

    Code:
    Sub AppStart (Form1 As Form, Args() As String)
        MainForm = Form1
        MainForm.RootPane.LoadLayout(
    "Layout1"'Load the layout file.
        MainForm.Show
    End Sub

    'Return true to allow the default exceptions handler to handle the uncaught exception.
    Sub Application_Error (Error As Exception, StackTrace As StringAs Boolean
        
    Return True
    End Sub

    Sub Button1_Action
        MainForm.Close
    End Sub
    Ich schliesse nur das mainform. Wenn Du noch andere Fenster offen hast dann musst du diese ggfls natürlich auch schliessen.
     
  5. rboeck

    rboeck Well-Known Member Licensed User

    Wozu? Es wird vom System aufgerufen, wenn Du beenden willst. Man könnte es zwar auch selbst aufrufen, aber dazu müsstest Du das EvenData Object mitsenden und kann mir keinen sinnvollen Zweck vorstellen...
     
  6. DonManfred

    DonManfred Expert Licensed User

    Ich habe die Frage so interpretiert, das Struppi sein Programm Codegesteuert beenden will.
     
  7. strupp01

    strupp01 Active Member Licensed User

    Irgendwie stehe ich auf dem Schlauch. Habe ein Mini-Programm beigelegt. Vielleicht könnt Ihr mir den benötigten Code zum Beenden einfügen. Bin im Moment ratlos.:(
     

    Attached Files:

  8. DonManfred

    DonManfred Expert Licensed User

    Code:
    Sub AppStart (Form1 As Form, Args() As String)
       MainForm = Form1
       MainForm.Show
       s1.Initialize(
    "s1")
       MainForm.RootPane.AddNode(s1, 
    100300100)
       
        
    Dim btn As Button
        btn.Initialize(
    "ExitButton")
        btn.Text = 
    "Programm verlassen"
        MainForm.RootPane.AddNode(btn,
    25,150,250,50)
     
       s1.MaxValue = 
    100
       s1.MinValue = 
    0
     
       s1.Value =
    80
     
    End Sub

    Sub S1_ValueChange (Value As Double)
        
    If s1.Value = 100 Then Berechnung.Berechnung_Test
    End Sub
    Sub ExitButton_Action
        MainForm.Close
    End Sub
    PS: Beuqmemer ist es allerdings den Designer zu verwenden.
     
    rboeck likes this.
  9. strupp01

    strupp01 Active Member Licensed User

    Das funktioniert so nicht. Wenn ich den Slider auf 100% schiebe geht die MsgBox auf. Bestätige ich die MsgBox mir klicken auf OK-Button, so schließt sich das MsgBox-Fenster und das war es. Die Form bleibt erhalten, das Programm ist nicht beendet.
     
  10. DonManfred

    DonManfred Expert Licensed User

    Code:
    Sub AppStart (Form1 As Form, Args() As String)
       MainForm = Form1
       MainForm.Show
       s1.Initialize(
    "s1")
       MainForm.RootPane.AddNode(s1, 
    100300100)
        
       s1.MaxValue = 
    100
       s1.MinValue = 
    0
      
       s1.Value =
    80
      
    End Sub

    Sub S1_ValueChange (Value As Double)
        
    If s1.Value = 100 Then
             Berechnung.Berechnung_Test
            MainForm.Close           
        
    End If
    End Sub
    So geht´s auch. Ich verstehe nicht, wo GENAU dein Problem liegt. Vielleicht solltest Du die Anforderungen genauer Spezifizieren.
     
  11. strupp01

    strupp01 Active Member Licensed User

    Ich will aus dem Modul Berechnung, nach Quittierung der MSGBox das Programm beenden. Dein obriges Beispiel kann ich so nicht anwenden. Kann man nicht das Quittieren der MsgBox abfragen und dann das MainForm.Close auslösen ?
     
  12. strupp01

    strupp01 Active Member Licensed User

    Ich sehe gerade, wenn ich eine MsgBox2 nehme, kann ich das Ja oder Ok abfragen und zu Main.ProgEnde springen. Im sub ProgEnde steht nur Mainform.Close. Jetzt wird die Form geschlossen und das Programm beendet.

    Kann ich auch die normale MsgBox abfragen ? wenn ja, wie geht das ?
     
  13. DonManfred

    DonManfred Expert Licensed User

    msg box abfragen, ergebnis auswerten und je nach antwort halt den entsprechenden quelltext reinpacken.

    Hört sich für mich an als bestünde bei Dir massiver Bedarf, nochmal das Anfänger tutorial zu B4A/B4J durchzugehen und Dich etwas mehr mit der Sprache zu beschäftigen.
     
  14. strupp01

    strupp01 Active Member Licensed User

    Du hast ja irgendwie recht. Habe vor etlichen Jahren das letzte mal in B4A programmiert. Viel davon vergessen. B4J existiert leider das tutoriaL nur in English, da habe ich sehr große Probleme. Die grauen Gehirnzellen wollen langsam auch nicht mehr so recht. So kommt halt alles zusammen und ich versuche wieder etwas mehr reinzukommen. Tut mir leid, wenn ich dabei etwas nerve.
     
  15. DonManfred

    DonManfred Expert Licensed User

    Vielleicht definierst Du einfach mal GENAU, WAS GENAU Du erreichen möchtest.
     
  16. strupp01

    strupp01 Active Member Licensed User

    Versuche ein bischen geistig frisch zu bleiben und dazu in B4A ein Programm zu schreiben. Als Eingangsdaten dazu muss ich aber unter B4J viele Daten in Datenbanken erfassen. B4J ist jedoch für mich total neu und leider jede Dokumentation in English. Bin mitlerweile mit dem Programm in B4J fast fertig. So vertreibt sich halt ein rentner sein Zeit.:)
    Möchte halt gerne etwas programmieren, versuche die Lösungen von anderen Usern für die Probleme, die bei mir auftauchen, im Internet zu finden und auf meine Probleme anzupassen. Nur wenn ich garnichts finde oder verstehe poste ich hier im Forum. Manchmal auch im English-Forum mit Google-Übersetzung.

    Es ist halt für mich Hobby.
     
  17. KMatle

    KMatle Expert Licensed User

    @strupp01 : Manfred hat versucht zu helfen und ein paar Anregungen gegeben. Scheinbar wolltest du aber eine andere Lösung haben. Daher die Bitte, genau zu schreiben, was du möchtest. Mehr nicht. Gaaanz simpel :)
     
    DonManfred likes this.
  18. strupp01

    strupp01 Active Member Licensed User

    Mir ist bewußt, dass Manfred helfen wollte. Bin auch sehr froh darüber, da er das auch nicht zum Erstenmal macht. Stand nur auf dem Schlauch an diesem Tag. Nachher war mir alles klar. Ich wollte keine andere Lösung. Die hier gezeigte war schon die richtige. Habe sie auch mitlerweile eingebaut. Wie gesagt, war an diesem Tag wohl nicht richtig aufnahmefähig. Sorry.
     
    DonManfred likes this.
Loading...