Autore Topic: message 3 tasti  (Letto 914 volte)

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
message 3 tasti
« il: 10 Aprile 2010, 19:37:34 »
hello raga

in un messagebox devo inserire un terzo button per annullare un ciclo for

in pratica mi serve un message con tre button (Elimina,Annulla,Esci)
nel quale Esci annula il ciclo
Codice: [Seleziona]
     for i = 1 to MyRS.count
         IF Message.Delete("Vuoi eliminare questo Record?", "Elimina", "Annulla") = 1
             Medcli = MyRS!idcliente 
             MyRS = ModMain.MyConn.edit("clienti", "idcliente=" & Medcli)
             MyRS.Delete
             Message.Info("Record eliminato")
         ENDIF
     next

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: message 3 tasti
« Risposta #1 il: 10 Aprile 2010, 20:03:37 »
ma non ti basta scrivere:
Codice: [Seleziona]
Message.Delete("Vuoi eliminare questo record","Elimina","Annulla","Esci")

?


Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: message 3 tasti
« Risposta #2 il: 10 Aprile 2010, 23:24:52 »
ma non ti basta scrivere:
Codice: [Seleziona]
Message.Delete("Vuoi eliminare questo record","Elimina","Annulla","Esci")

?



in questo caso annulla o esci hanno la stessa funzione. non entrano nell'if e annullano l'operazione.

a me serve Elimina (comincia il ciclo for), Annulla(Annulla l'operazione), Esci(Interrompe il ciclo for anche se questi è già iniziato).

in questo caso Esci si dovrebbe usare dopo aver premuto elimina e serve solo per bloccare in caso di errori.

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: message 3 tasti
« Risposta #3 il: 10 Aprile 2010, 23:57:49 »
Codice: [Seleziona]
     for i = 1 to MyRS.count
         IF Message.Delete("Vuoi eliminare questo Record?", "Elimina", "Annulla") = 1
             Medcli = MyRS!idcliente 
             MyRS = ModMain.MyConn.edit("clienti", "idcliente=" & Medcli)
             MyRS.Delete
             Message.Info("Record eliminato")
         ELSE
              BREAK
         END IF
     next

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Re: message 3 tasti
« Risposta #4 il: 11 Aprile 2010, 07:56:31 »
Ciao, prova il SELECT CASE al posto dell'IF.

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: message 3 tasti
« Risposta #5 il: 11 Aprile 2010, 09:25:57 »
secondo me così non può funzionare, anche perchè premendo un pulsante il message si chiude , altrimenti il ciclo for non potrebbe neppure iniziare.
ti conviene una volta partito il ciclo far comparire una finestrella con il pulsante per uscire dal ciclo

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: message 3 tasti
« Risposta #6 il: 11 Aprile 2010, 11:57:50 »
Un modo semplice sarebbe di usare un ToggleButton, che mantiene cioè uno stato una volta premuto. Così basta che dal ciclo For..Next tu controlli lo stato del ToggleButton.

Oppure usare un Button normale che modifichi il valore di una variabile visibile a livello di form.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: message 3 tasti
« Risposta #7 il: 11 Aprile 2010, 16:44:49 »
io, nel programma che  sto realizzando, ho usato un funzione message con la seguente impostazione:
Codice: [Seleziona]
SELECT Message.Error("Attenzione! -> Tabella Residui" & Chr(10) & "V U O T A" & Chr(10) & Chr(10) & "Cosa vuoi fare?", "FORZO CHIUSURA PROGRAMMA", "PROSEGUO")
            CASE 1        ' È stato premuto il pulsante del messaggio --> "FORZO USCITA"
                QUIT
            CASE 2
              b_SwErro = TRUE       'per richiesta operatore di proseguire con Tabella Residui VUOTA
        END SELECT
Non ho mai usato un  terzo pulsante, però come ti ha indicato anche Berserker79, così dovrebbe funzionare. Devi solo aggiungere un test di tipo CASE 3
Vedi  SELECT Message.Question a pag.114 di "A Beginner's Guide to Gambas".   Auguri.  ;)
Ciao.
:ciao:

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: message 3 tasti
« Risposta #8 il: 11 Aprile 2010, 20:24:18 »
grazie delle dritte raga

penso di aver risolto unendo i consigli di fsurfing e leo72.
ora mi metto all'opera e faccio comparire una seconda finestra(non modale) con un button che interrompe il ciclo for.