Autore Topic: Keypress e Focus  (Letto 6623 volte)

Offline perseo

  • Maestro Gambero
  • ****
  • Post: 264
    • Mostra profilo
Re: Keypress e Focus
« Risposta #15 il: 13 Novembre 2010, 01:27:17 »
L'ho usata nell'esempio e funziona...

Poi ho importato le due classi Sequence e _Sequence nei miei sorgenti e mi va in errore.
L'ho applicata così nel _new di una Form secondaria (non nel FMain):

With Sequence[Me]
    .Move(Me.GridView1.Name)
    .Move(Me.GridView1.Name, txtCognome.Name)
 End With  

PS: non ho scritto altro.. tipo dichiarazioni, ecc.

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Keypress e Focus
« Risposta #16 il: 13 Novembre 2010, 01:30:16 »
Ma che errore ti da?

Offline perseo

  • Maestro Gambero
  • ****
  • Post: 264
    • Mostra profilo
Re: Keypress e Focus
« Risposta #17 il: 13 Novembre 2010, 01:33:07 »
Null object
_Sequence.AddIgnoreClass.41

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Keypress e Focus
« Risposta #18 il: 13 Novembre 2010, 01:38:11 »
capito

Togli nella classe _Sequence alla riga 36 Me.AddIgnoreClass("TextLabel")

E' una classe che c'e' solo in Qt e tu usi Gtk....

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Keypress e Focus
« Risposta #19 il: 13 Novembre 2010, 01:39:36 »
devo comunque fare una modifica per gli oggetti compositi tipo ValueBox (e penso anche i miei)... quando entra all'interno del controllo non ne viene piu' fuori  :o

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Keypress e Focus
« Risposta #20 il: 13 Novembre 2010, 01:43:30 »
Mi correggo TextLabel c'e' anche in gtk... allora non so quale sia il tuo problema

Offline perseo

  • Maestro Gambero
  • ****
  • Post: 264
    • Mostra profilo
Re: Keypress e Focus
« Risposta #21 il: 13 Novembre 2010, 01:43:43 »
Sto usando QT4 e comunque l'avevo già tolta (sia textlabel che label) e quando eseguo mi dava un altro errore... alla riga66:

Null object
_Sequence.Move.66

PS: però il tuo esempio funziona... non capisco proprio.

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Keypress e Focus
« Risposta #22 il: 13 Novembre 2010, 01:46:52 »
Mi puoi postare la tua prova?

Offline perseo

  • Maestro Gambero
  • ****
  • Post: 264
    • Mostra profilo
Re: Keypress e Focus
« Risposta #23 il: 13 Novembre 2010, 01:55:43 »
Allegato...

la prova la trovi nella FMain.

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Keypress e Focus
« Risposta #24 il: 13 Novembre 2010, 02:56:45 »
Ok ho sconvolto tutto, perchè mi dava problemi con oggetti composti da piu' controlli...

Il problema e' che adesso si e' obbligati a passare tutti i controlli presenti nel form, pena l'esclusione dal SetFocus.

Codice: vb [Seleziona]
With Sequence[ME].Order
  .Add(Me.Button1)
  .Add(Me.Button2)
  .Add(Me.TreeView)
End With
Sequence[Me].Enabled = True


Praticamente gli passo un Array di oggetti e 'attivo' l'ordine con la proprietà Enabled = True

Offline perseo

  • Maestro Gambero
  • ****
  • Post: 264
    • Mostra profilo
Re: Keypress e Focus
« Risposta #25 il: 13 Novembre 2010, 12:09:02 »
Mi andava in errore alla riga 70 (quando dal primo tornavo sull'ultimo)...
Avevi scritto: $Order.Max.SetFocus()
L'ho corretto così: $Order[$Order.Max].SetFocus()

Mi sembra già ottimo! Solo che non funziona con le searchbox...

PS: ho scritto una piccola Sub, di nome SequenzaFocus, che setta Sequence.
In pratica anziché scrivere il WITH... .Add(...), .Add(...)... --> ho messo così nel _new():  SequenzaFocus(True, FAccnew, "txtCognome,txtNome,txtSex,txtGG")

E la funzione è questa:
Codice: vb.net [Seleziona]
Public Sub SequenzaFocus(funzionante As Boolean, finestra As Window, sequenza As String)
Dim obj As String[]
Dim i As Integer
obj = Split(sequenza, ";, ")
For i = 0 To obj.Max
  Object.SetProperty(Sequence[finestra], "Order.Add", finestra.obj[i])
Next
End


Il programma non va in errore, ma diventa ...grigio. E devo interrompere l'esecuzione.

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Keypress e Focus
« Risposta #26 il: 14 Novembre 2010, 00:03:51 »
Siccome non sono riuscito a trovare un qualcosa per scombinare da codice questo benedetto ordine dei controlli in un form, ho fatto una piccola classe statica che da la possibilità appunto di riordinare a piacimento il focus degli oggetti da codice...

Potevi dirmelo, perché ti avrei dato una mano. Non sono capace di realizzare strutture come quelle che crei tu, ma nell'arte di scombinare la sequenza degli oggetti di Gambas non ho eguali!   :rotfl:            Ti avrei proposto di provare il mio programma, però ormai penso che non serva più.
Grazie anche da parte mia per la classe che hai preparato in quattro e quattrotto ed approfitto per scusarmi del ritardo con cui sto rispondendo, ma oggi ho lasciato Gambas ed Internet nel cassetto, perciò hop letto solamente adesso il seguito della discussione. Proverò la tua nuova classe non appena potrò.
Ciao.
:ciao:

Offline perseo

  • Maestro Gambero
  • ****
  • Post: 264
    • Mostra profilo
Re: Keypress e Focus
« Risposta #27 il: 14 Novembre 2010, 00:31:40 »
Oltre alla questione delle searchbox ho riscontrato un altro problema che non capisco da cosa dipenda...

Nel mio caso, se da una form apro un'altra finestra in showmodal con "sequence" attiva e poi la chiudo... se poi la riapro una seconda volta mi va in errore:

Invalid Object: in class _sequence at line 38 --> dove c'è questo codice --> S.SetFocus()

 :-\