Intanto benvenuto\a....spero ti troverai bene nella nostra comunità.....
allora su per giù il tuo codice sarebbe:
PUBLIC SUB Button1_click()
'-- se la caselle è vuota o se le prime due lettere sono pr
'-- mostra il messaggio di errore
IF TextBox1.text = "" OR NOT Left(Textbox1.text, 2) = "pr" THEN
Message.Info("textbox vuota", " EXIT ")
END IF
END
l'ho scritto al volo senza testarlo..spero vada bene...per ogni dubbio domanda pure....
Allora: innanzitutto la sintassi del codice che hai scritto è sbagliata...
Se vuoi usare quel codice devi scriverlo così
SHELL "usr/bin/programma" WAIT
FMain.close
In questo modo il tuo programma richiama il comando per aprire il comando, aspetta che il terminale abbia finito (comando WAIT) e poi chiude il form...Wait è importante perchè il form FMain potrebbe chiudersi prima che il comando abbia finito (è raro ma può succedere con comando che richiedono un filino di tempo in più)....
però non ho capito cosa vuoi fare. Ti spiegheresti meglio per favore?
ah....ecco ora che mi hai spiegato posso aiutarti meglio.....immaginiamo che hai un button e una textbox e vuoi che alla pressione del button il programma ti estragga il file scritto nella textbox con unrar...tutto ciò che devi scrivere e questo
PUBLIC SUB Button1_Click()
SHELL "usr/bin/unrar" & " " & texbox1.text
END
come vedi il carattere & non fa altro che unire le stringhe il comando SHELL riconosce come un unico comando....se nella texbox c'è scritto per esempio Gambas.rar allora il comando che verrà letto da SHELL sarà
che come puoi notare è la stesa cosa che scriveresti nel terminale per estrarre lo stesso file....
Puoi fare una cosa molto semplice....crei un modulo (e lo chiami ad esempio MGenerale)e all'interno di essi salvi le variabili che sai ti possono servire in punti diversi (quindi form diversi) del tuo progetto. Ad esempio se all'interno del modulo salvi una varibile di tipo stringa di nome SVariabile allora puoi fare ad esempio:
MGenerale.SVariabile = Textbox1.test 'questa textbox è nel form 1
Textbox2.text = MGenerale.SVariabile 'questa textbox è nel form 2
E' chiaro?
mi sa che proprio nn ci arrivo ahah
form1:
MGenerale.gelato = Textbox1.text
form2:
nomecodice = MGenerale.gelato
SHELL "/usr/bin/unrar" & " " & "e" & " " & nomecodice WAIT
MGenerale (modulo)
forse, sbaglio il modo di dichiarare le variabili.. vango da visualbasic... pero non capisco mi da errore su "nomecodice = MGenerale.gelato" della form2
ciao grazie
a ecco infatti.. ora ho risolto questo ma mi è saltato il WAIT, che fino adesso ha funzionato correttamente ora me lo salta..
MForm:
Form1.Show()
SHELL "/usr/bin/unrar" & " " & "e" & " " & Textbox1.text WAIT
Form1.Close()
Form2.Show()
Form1: (altro non è che una fittizia barra di avanzamento (anche xke farla andare credo sia dura ahah)
PUBLIC SUB Form_Open()
FMain.Title = "Unrar grafico"
END
quindi diciamo che mi apre la finta barra di avanzamento, esegue la decompressione, e poi chiude la barra di avanzamente, aprendo un altro form..
bene in realta mi apre direttamente il form 2 mentre ancora sta decomprimendo, saltandomi completamente la visione "di attesa" di from1...
cmq sto entrando un po nelle logiche...
Sostituisci la prima parte di codice con
Form1.Show()
SHELL "/usr/bin/unrar" & " " & "e" & " " & Textbox1.text
WAIT
Form1.Close()
Form2.Show()