Italian [B4A] RISOLTO Come 'capire' da codice quale B4Xpage e' su schermo in questo momento?

amorosik

Expert
Licensed User
Programma che riceve informazioni da sms
Quando il messaggio viene ricevuto deve visualizzare alcune informazioni
Se e' attualmente visibile la pagina1 deve fare alcune cose, se e' attualmente visibile la pagina2 deve farne altre
Esiste una funzione/procedura che restituisca la B4XPage attualmente visibile a schermo?
 
Last edited:

Star-Dust

Expert
Licensed User
Longtime User
B4X:
B4XPages.GetManager.GetTopPage as B4PageInfo

Sample:
B4X:
log(B4XPages.GetManager.GetTopPage.Title)
 

LucaMs

Expert
Licensed User
Longtime User
1602864119561.png
 

Star-Dust

Expert
Licensed User
Longtime User

amorosik

Expert
Licensed User
B4XPage restituisce direttamente la B4XPage (più precisamente un riferimento a quella pagina-oggetto). Altrimenti dovresti usare l'ID, dipende da dove/come ti serve.

Mi serve per visualizzare al volo le informazioni ricevute
Supponi di avere frmConfig1 ed frmConfig2, attualmente visibile frmConfig2, se arriva sms, ricevo e vorrei aggiornare solo i campi su frmConfig2
 

LucaMs

Expert
Licensed User
Longtime User
A meno che tu non voglia per forza visualizzarli subito, uno dei vantaggi delle B4XPages è che anche una pagina che non sia in primo piano può ricevere dati (gli sms, in questo caso).

Se invece li ricevi e vuoi visualizzarli subito, non hai motivo di conoscere quale pagina sia visibile in quel momento perché porteresesti quella in primo piano, no? Boh.

Cmq, una eventuale If potrebbe essere:
B4X:
If B4XPages.GetManager.GetTopPage.Id = "frmConfig2" Then
se a quel "form" (B4XPage) avrai assegnato "frmConfig2" come Id.
 

amorosik

Expert
Licensed User
Abbi pazienza, ma sai troppe cose, ed io troppe poche, qua' bisogna equilibrare un pochetto
Ed una volta capito qual'e' la pagina su schermo, come gli cambio colore, allo sfondo intendo?
Nel senso, a schermo supponiamo ci sia 'frmConfigurazione', il messaggio viene ricevuto dal codice dentro un service di nome ServiceSms
Quindi 'stando' dentro il modulo ServiceSms che codice usare per cambiare colore a sfondo frmConfigurazione?
 
Top