Italian [B4XPages] Domande (sto passando tutto il progetto da B4A)

LucaMs

Expert
Licensed User
Longtime User
O meglio, non c'è la possibilità di intercettare altri tasti. Se crei la routine-evento B4XPage_ CloseRequest, dall'interno di questa puoi richiamare/mostrare la pagina che vuoi.
 

Star-Dust

Expert
Licensed User
O meglio, non c'è la possibilità di intercettare altri tasti. Se crei la routine-evento B4XPage_ CloseRequest, dall'interno di questa puoi richiamare/mostrare la pagina che vuoi.
cerca meglio...
 

3uowiS

Active Member
Licensed User
Se crei la routine-evento B4XPages_ CloseRequest, dall'interno di questa puoi richiamare/mostrare la pagina che vuoi.
Cioè? Come funziona questa routine?

Ho provato così ma non funziona:
B4X:
Sub B4XPages_CloseRequest As ResumableSub
    Return B4XPages.ShowPage("MainPage")
End Sub
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Cioè? Come funziona questa routine?

Ho provato così ma non funziona:
B4X:
Sub B4XPages_CloseRequest As ResumableSub
    Return B4XPages.ShowPage("MainPage")
End Sub
Perché mi era scappata una "s" di troppo.
B4XPage_CloseRequest.
Comunque mi pare di averti detto come creare gli eventi, senza doverli digitare (se non lo ricordi, fammelo sapere ;))
 

3uowiS

Active Member
Licensed User
Perché mi era scappata una "s" di troppo.
B4XPage_CloseRequest.
Hai ragione, me ne sono accorto proprio mentre mi hai scritto. 😅

Comunque mi pare di averti detto come creare gli eventi, senza doverli digitare (se non lo ricordi, fammelo sapere ;))
Si si, con tab dopo lo spazio, solo che il nome dell'evento dovevo scriverlo io e sono riuscito a sbagliare l'unica cosa che dovevo fare manualmente! 🤣
 

3uowiS

Active Member
Licensed User
Adesso non torna indietro ma crasha... mi dice
Error occurred on line: 522 (B4XPagesManager)
Ma la linea 522 non esiste neppure in quella pagina...

il codice è questo:
B4X:
Sub B4XPage_CloseRequest As ResumableSub
    Return B4XPages.ShowPage("MainPage")
End Sub
 

Star-Dust

Expert
Licensed User
Io un return lo metterei anche un exit, Non vorrei che pensano che siamo tirchi
 

3uowiS

Active Member
Licensed User
e che c'entra quel return?
Eliminalo.
Non so che c'entra, sinceramente non so neppure a cosa serve... 🙈
All'inizio lo avevo messo senza ma mi dava un Warning "B4XDatabasePage - 391: Non tutti i punti chiave del codice restituiscono un valore. (warning #2)" ho visto che c'era nel thared che mi avevi linkato e che mettendolo andava via il Warning così ho pensato che ci andasse... 😅
Allora per quello Warning che devo fare?
 

Star-Dust

Expert
Licensed User
È una Resumable Sub, qualcosa deve restituire
 

3uowiS

Active Member
Licensed User
Anche senza Return crasha con il solito errore... Ho notato che prima dell'errore c'è questo nei log
*** database: B4XPage_CloseRequest [login, mainpage, myteam, database]
non è che quindi mi chiude anche la mainpage e quindi non può accederci? B4XPage è un nome comune anche alle altre pagine...forse devo cambiare il nome evento?
 

udg

Expert
Licensed User
Longtime User
Credo ci sia un po' di confusione.
CloseRequest si aspetta di poter dire se si può o meno chiudere la pagina (dopo aver utilizzato BackKey o la chiusura form in B4j)
B4X:
'Return True to close, False to cancel
Private Sub B4XPage_CloseRequest As ResumableSub
    Dim sf As Object = xui.Msgbox2Async("Close?", "Title", "Yes", "Cancel", "No", Null)
    Wait For (sf) Msgbox_Result (Result As Int)
    If Result = xui.DialogResponse_Positive Then
        Return True
    End If
    Return False
End Sub
Quindi nel caso si desideri andare sempre in PaginaX (anche Mainpage) alla pressione di BackKey, bisognerà settare un return false e lo show della pagina desiderata.

ps: ovviamemte, a differenza dell'esempio qui sopra, non si chiederà all'utente cosa desideri fare
 

3uowiS

Active Member
Licensed User
Volevo metterlo così
B4X:
Private Sub B4XPage_CloseRequest As ResumableSub
    Return False
    B4XPages.ShowPageAndRemovePreviousPages("MainPage")
End Sub

ma c'è uno Warning che mi di dice "B4XDatabasePage - 393: Rilevata una parte di codice non raggiungibile. (warning #1)" sottoliveando "B4XPages.ShowPage("MainPage")"
 

Star-Dust

Expert
Licensed User
Volevo metterlo così
B4X:
Private Sub B4XPage_CloseRequest As ResumableSub
    Return False
    B4XPages.ShowPageAndRemovePreviousPages("MainPage")
End Sub

ma c'è uno Warning che mi di dice "B4XDatabasePage - 393: Rilevata una parte di codice non raggiungibile. (warning #1)" sottoliveando "B4XPages.ShowPage("MainPage")"
Dopo il return non va scritto nulla ovviamente perché da quel punto in poi torna al chiamante e non verrà eseguito. L'ambiente ti avvisa che quella parte di codice non sarà mai eseguita/raggiunta.

Avviso numero 1.... proprio alle basi....magari fosse avviso numero 100.... siamo all'ABC dello sviluppo
 
Top