provato non funziona rimane inattivoSuppongo con A.Show
(ovviamente scritto nel form B)
Form.RootPane.RequestFocus
'si presume che sia già in Show
'e per ulteriore sicurezza
Form.AlwaysOnTop=True
'e subito dopo per evitare che ti possa dar fastidio averla
'sempre in primo piano, togli la prioprità precedente
Form.AlwaysOnTop=False
AlwaysOnTop la mette e fissa la finestra in primo piano su tutto, se clicca altra finestra il primopiano rimane sempre li. Non so se è quello che cercaSalve ragazzi non so se parliamo di B4J o B4A
io uso solo B4J e se è quello potresti fare
penso che questo dovrebbe bastare, però dopo aver dato il focus alla Form ritengo siaB4X:Form.RootPane.RequestFocus 'si presume che sia già in Show 'e per ulteriore sicurezza Form.AlwaysOnTop=True 'e subito dopo per evitare che ti possa dar fastidio averla 'sempre in primo piano, togli la prioprità precedente Form.AlwaysOnTop=False
meglio passare il focus ad uno dei controlli del form stesso e cioè al primo che dovresti
usare
Esatto anche show... Praticamente il titolo del form b4j non si 'illumina', vorrei farlo illuminareAlwaysOnTop la mette e fissa la finestra in primo piano su tutto, se clicca altra finestra il primopiano rimane sempre li. Non so se è quello che cerca
Form.RootPane.RequestFocus semplicemente sposta il ficus interno da una vista del pannello al pannello, non mi pare dia il primopiano alla finestra
Domanda... ma se chiudo il form con close non devo poi reinizializzarlo come classe come ho fatto con la prima apertura?I modi per portare in primo piano in form sono sue che io conosco.
1. Chiudi e riapri il form Close/Show. Come diceva LucaMs, ma prima devi fare.il close
Public Sub Initialize(OwnerForm As Form,frmOpenMode As Int,CallerForm As Form,DisableCallerForm As Boolean)
'***DA UTILIZZARE PER OGNI FORM***
OpenMode = frmOpenMode
OwnerFrm = OwnerForm
CallerFrm = CallerForm
DisableCaller = DisableCallerForm
'disabilito il form chiamante
If DisableCallerForm = True Then CallerFrm.RootPane.Enabled = False
Frm.Initialize("Frm",600,700)
'centra il form
Frm.WindowLeft = (Main.MainForm.Width/2)-(Frm.Width/2)
Frm.WindowTop = (Main.MainForm.Height/2)-(Frm.Height/2)
Frm.RootPane.LoadLayout("layStdPIDsViewer")
Frm.Title = "PIDs Standard"
Frm.AlwaysOnTop = True
Frm.Resizable = False
Frm.SetFormStyle(Functions.FormStyle.Utility)
Frm.SetOwner(OwnerForm)
Frm.Show
CallSubDelayed(Me,"Initialize_Page")
End Sub
No.Domanda... ma se chiudo il form con close non devo poi reinizializzarlo come classe come ho fatto con la prima apertura?
per riaprire il form uso sempre inizialize, quindi è sbagliato?No.
Close è il contrario di Show e non annulla initialize
?????Posso scrivere una stupidaggine? E se passassi a B4XPages anche per i progetti B4J?
Per il resto, oggi i miei unici 2 neuroni non hanno voglia nemmeno di respirare ?
Inizialize con dice la parola inizliallizza la classe l, e va usato solo una volta all'inizioper riaprire il form uso sempre inizialize, quindi è sbagliato?
Lo devo usare solo una volta? e quando?
sto facendo in B4J page almeno non AVRO' problemi ? ? ? ? ?Inizialize con dice la parola inizliallizza la classe l, e va usato solo una volta all'inizio
Show fa aprire e apparire il form, Close lo chiude.
"Le ultime parole famose" ?sto facendo in B4J page almeno non AVRO' problemi ? ? ? ? ?
Esatto, qui di ora i form sarebbero i root?"Le ultime parole famose" ?
In un certo senso. Sarebbe più "giusto" considerare form le B4XPage, ma come contenitore di view sì, è il pane(l) Root.Esatto, qui di ora i form sarebbero i root?
Non devi scrivere più codice relativo direttamente ai form (se non in casi particolari).Ho la classe form
B4xpage.show(classeform)
E nella classe del form per fare riferimento tipo a form.enable=true devo fare root.enable=true?
Qualunque classe, che sia una B4XPage o meno, andrebbe inizializzata (più precisamente: un'istanza di una classe, ovvero un oggetto, ovvero una variabile-oggetto) solo una volta, in genere. Quindi la sua routine pubblica Initialize andrebbe chiamata una sola volta; nessuno ti impedisce, però di farlo più volte.Ecco c'è l'incu... lo sapevo.....???
Prima di b4Xpages.add(classe) devo inizializzare la classe e li passo dei parametri classe.initialize(par1,2,3..)
Ora... Quando faccio b4Xpages.add(classe) la classe che aggiungo contiene i parametri passati e se richiamo lo stesso form da un altro avrò gli stessi parametri perché b4Xpages.add(classe) è il contenitore.
Uso ogni volta valori diversi per i parametri quindi dovrei rendere public i parametri nella classe e anziché passarli da initialize dovrei fare classe.param1,2,3 ecc. b4Xpages.show(nomeclasse)
Giusto?