Autore Topic: Gestione messaggi  (Letto 3165 volte)

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Gestione messaggi
« il: 20 Febbraio 2009, 00:11:40 »
Buona sera a tutti,
ho un problema che non capisco riguardo la gestione dei messaggi, inserendo questo codice

Codice: [Seleziona]

PUBBLIC SUB TextBox1_LostFocus()
  IF TextBox1.Text <> "" AND TextBox2.Text <> "" THEN
    TextBox1.SelectAll
    TextBox2.SelectAll
    Message.Warning("Dati non corretti.")
    TextBox2.SetFocus
  ENDIF    
END

PUBBLIC SUB TextBox2_LostFocus()
  IF TextBox2.Text <> "" AND TextBox1.Text <> "" THEN
    TextBox2.SelectAll
    TextBox1.SelectAll
    Message.Warning("Dati non corretti.")
    TextBox1.SetFocus
  ENDIF    
END


quando lo eseguo, dopo aver inserito dei dati nelle due TextBox come mi sposto su un'altro campo dello stesso form appare il messaggio, e fin qui tutto ok, ma se dopo aver chiuso il messaggio clikko per esempio sulla TextBox1 mi va in errore:
         Message box already displayed
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Gestione messaggi
« Risposta #1 il: 20 Febbraio 2009, 00:33:12 »
Questo avviene perchè cliccando su una delle due textbox l'altra perde il focus..

Invece di _lostfocus prova a usare _change..

Cioè quando una delle due textbox cambia, se entrambe sono vuote restituisce l'errore.....non ti assicuro che funziona però....

  • Visitatore
Re: Gestione messaggi
« Risposta #2 il: 20 Febbraio 2009, 01:49:06 »
Io per evitare seccature del genere e per evitare di dover clikkare ok per chiudere il messagebox uso i ballon() .....

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Gestione messaggi
« Risposta #3 il: 20 Febbraio 2009, 22:09:20 »
Per Ceskho
provo con l'evento _Change, vediamo se riesco a risolvere.

Per giac_fab
non conosco i ballon, potresti farmi un esempio.
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

  • Visitatore
Re: Gestione messaggi
« Risposta #4 il: 20 Febbraio 2009, 22:41:12 »
Ivece di un piccolo form con l'ok da premere esce un fumetto come quello delle notifiche di kde con scritto il testo. Il fumetto sparisce poco dopo da solo (puoi settare dopo quanto).
Codice: [Seleziona]
 ballon("testo",contol)
  dove control è l'oggetto del form a cui punta il fumetto (il textbox)
Codice: [Seleziona]
http://gambasdoc.org/help/comp/gb.form/balloon?it


Non ricordo se devi abilitare qualche componente. .....
Codice: [Seleziona]

PUBBLIC SUB TextBox1_LostFocus()
  IF TextBox1.Text <> "" AND TextBox2.Text <> "" THEN
    TextBox1.SelectAll
    TextBox2.SelectAll
    ballon.Warning("Dati non corretti.",textbox1)
    TextBox2.SetFocus
  ENDIF    
END

PUBBLIC SUB TextBox2_LostFocus()
  IF TextBox2.Text <> "" AND TextBox1.Text <> "" THEN
    TextBox2.SelectAll
    TextBox1.SelectAll
    ballon.Warning("Dati non corretti.",textbox1)
    TextBox1.SetFocus
  ENDIF    
END

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Gestione messaggi
« Risposta #5 il: 20 Febbraio 2009, 23:04:34 »
Grazie giac_fab dell'esempio, ho appreso una nuova funzionalità di Gambas che non conoscevo, con un effetto grafico non male.
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Gestione messaggi
« Risposta #6 il: 21 Febbraio 2009, 00:18:11 »
@Tornu:
Ci scommetto che usi le qt come librerie per il tuo progetto, vero? O, forse, il componente gb.gui su un desktop KDE. Attenzione che è un bug di come le Qt gestiscono le cose. Se infatti vai nelle proprietà del tuo progetto e imposti come componente grafico gb.gtk vedrai che il tuo codice funzionerà normalmente.

Non so perché ma vedo che le Qt tengono "traccia" del fatto di essere ancora legate al 1° textbox: infatti quando compare l'errore a me (su Gnome) entrambi i textbox hanno ancora il focus, per cui in teoria si accavallerebbero 2 messagebox, cosa che non può accadere perché essendo una finestrina modale non può comparire in coppia ad un'altra modale.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Gestione messaggi
« Risposta #7 il: 21 Febbraio 2009, 01:07:58 »
Si uso le Qt con Gnome.
Il problema è esattamente quello che tu hai descritto, ho impostato il componente grafico gb.gtk è il codice che avevo postato in apertura di discussione funziona perfettamente.

Sono rimasto deluso dalle gtk (non le avevo mai provate) perchè il progetto pur funzionando correttamente (anche se non l'ho provato in tutte le sue parti) graficamente è diventato una "schifezza", tutto fuori allineamento, colori strani, insomma è diventato un'altra cosa.

Quindi dalla tua spiegazione ne deduco che il problema non è di Gambas ma delle librerie.

Chiedo un ulteriore aiuto visto come si sono messe le cose, è risolvibile diversamente il controllo che io voglio implementare?
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Gestione messaggi
« Risposta #8 il: 21 Febbraio 2009, 14:58:26 »
Ho provato (solo perchè non so come uscirne) a sostituire l'evento   _LostFocus con   _Change come suggeritomi da Ceskho ma il problema persiste... :aiuto:  :aiuto:
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Gestione messaggi
« Risposta #9 il: 21 Febbraio 2009, 15:32:29 »
Citazione

Sono rimasto deluso dalle gtk (non le avevo mai provate) perchè il progetto pur funzionando correttamente (anche se non l'ho provato in tutte le sue parti) graficamente è diventato una "schifezza", tutto fuori allineamento, colori strani, insomma è diventato un'altra cosa.

Quest'affermazione mi suona strana.... Su Gnome, casomai, sono le Qt ad essere "fuori posto", perché a meno che tu non le configuri manualmente, facendo un po' di salti mortali, sono "sgraziate" rispetto al resto del desktop.
Così come sembrano fuori posto le Gtk su desktop KDE se le lasci "di fabbrica".
Visita il mio sito personale: http://www.leonardomiliani.com

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Gestione messaggi
« Risposta #10 il: 21 Febbraio 2009, 21:03:59 »
Quello che dici non si discute, avevo avuto il problema quando sono passato da Mandriva a Ubuntu e seguendo il tuo articolo 'Aspetto delle applicazioni Gambas in Gnome' i miei progetti erano tornati graficamente "normali" continuando ad usare le Qt con Gnome.

Provo a risistemare il tutto sotto le Gtk sperando di non incontrare altri problemi non risolvibili dovuti alle librerie per evitare un ping-pong tra Qt e Gtk.
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Gestione messaggi
« Risposta #11 il: 22 Febbraio 2009, 20:01:47 »
Ho passato il mio progetto sotto le Gtk, ma comincio ad avere le idee confuse.
A parte le difficoltà grafiche (anche se leo dice il contrario, visto che uso Gnome), la cosa che mi sta preoccupando maggiormente e che alcune parti di codice che con le Qt funzionavano perfettamente con le Gtk si comportano in modo strano o non funzionano per niente senza dare errore, ora alla luce delle mie prime prove vorrei porvi una domanda, ci sono differenze nel codice di programmazione se si usano le Qt o le Gtk?
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Gestione messaggi
« Risposta #12 il: 22 Febbraio 2009, 23:50:07 »
Devi solo abilitare i componenti giusti...il codice non dipende dall'ambiente....è una cosa indipendente....

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Gestione messaggi
« Risposta #13 il: 23 Febbraio 2009, 00:19:08 »
@tornu:
se stai usando Gnome, qualunque applicativo che lanci sviluppato con Gambas ti _deve_ apparire per forza con il look di sistema, la finestra, un pulsante, la barra di scorrimento ecc... devono per forza apparire come un qualsiasi altro elemento di Gnome. Se così non è allora vuol dire che: 1) c'è qualche problema sulla tua installazione di Gambas; 2) stai usando le Qt. Altrimenti non si spiega.

Per farti un esempio, ti allego uno screenshot di un esempio fatto con le Gtk sotto Ubuntu/Gnome. Come vedi, tutto ha il look&feel del resto del sistema. Diversamente, sono le applicazioni Qt che hanno un look diverso perché su Gnome non hai di default il pannello di configurazione delle Qt per cui appare tutto bluastro (il tema di "fabbrica" delle librerie).
Visita il mio sito personale: http://www.leonardomiliani.com

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Gestione messaggi
« Risposta #14 il: 23 Febbraio 2009, 00:20:59 »
@Cesko
Volevo solo una conferma, ero già convinto di ciò.
Io ho abilitato tutti i componenti legati alle Gtk (almeno credo) ma i problemi continuo a riscontrarli, vi posterò degli spezzoni di codice nel quale mi trovo in difficoltà mentre con le Qt funzionano.
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)