Autore Topic: [RISOLTO]Ritornare parametro da form in chiusura  (Letto 1293 volte)

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
[RISOLTO]Ritornare parametro da form in chiusura
« il: 01 Settembre 2010, 22:04:11 »
Mi spiego meglio
vorrei aprire un form per scegliere i colori da un altro form
alla chiusura del primo vorrei che ritornasse il valore del colore scelto
come faccio per trasmettere il parametro senza usare variabili globali?

Grazie
« Ultima modifica: 01 Settembre 2010, 23:01:51 da Akrobaticone »
"e il naufragar m'è dolce in questo mar"

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Ritornare parametro da form in chiusura
« Risposta #1 il: 01 Settembre 2010, 22:26:32 »
Il passaggio di parametri da form a form è stato oggetto di discussione recentemente.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re: Ritornare parametro da form in chiusura
« Risposta #2 il: 01 Settembre 2010, 22:32:31 »
se ti riferisci a questo
http://www.gambas-it.org/smf/index.php?topic=1259.0
mi era sfuggito ad una prima ricerca
chiedo venia
 :-[
"e il naufragar m'è dolce in questo mar"

Offline jockerfox

  • Gambero
  • **
  • Post: 77
    • Mostra profilo
Re: [RISOLTO]Ritornare parametro da form in chiusura
« Risposta #3 il: 18 Novembre 2013, 15:15:02 »
Nonostante l'avvertimento di default di non riaprire questo thread, cioè mi ha consigliato di aprirne un altro, vado contro corrente perché non voglio riaprire un altro per riavere la stessa risposta...

Ho letto svariati documenti & thread e sono riuscito a passare dati dal form FMain a un secondo form, ma non riesco a fare l'opposto!
Ho letto anche la discussione  (http://www.gambas-it.org/smf/index.php?topic=1259.0), ma senza successo..
Ok, sto invecchiando anche io  >:(

Per cui chiedo venia, ed espongo il problema con la preghiera di darmi una via di uscita, in particolari modo a @Akrobaticone che se ha messo [risolto] in questa discussione perciò dovrebbe sapermi aiutare :D .

Codice: gambas [Seleziona]
[FMAIN]
Public Sub Form_Open()
...
  Dim sDbPass as String
  Dim hFormPassword As Form
...
  '»Controllo Accesso Password
  hFormPassword = New FormPassword(Null) 'Apparte che non capisco il perché sono obbligato a passare un parametro Null...  :-\
  sDbPass = hFormPassword.ShowModal() 'IMPORTANTE: da "Gambas Documentation", si evince che ShowModal restituisce solo Interi e non stringhe! Si veda in calce Nota 1
...
End


[FORMPASSWORD]
...
Public Sub T2PanDocBSalva_Click()
  Me.Close("PIO")
End
...


Mi da, GIUSTAMENTE, il seguente errore: Type mismatch: wanted Integer, got String instead
Rimando nuovamente a Nota 1

Ma come avete fatto ?

Nota 1:
- Function ShowModal ( ) As Integer
Shows the window in modal mode.
This method ends only when the window is closed, and the value passed to the Close method is returned.

- Function Close ( [ Return As Integer ] ) As Boolean
Closes the window, and returns an optional integer value used by the ShowModal method.
:-)

Offline jockerfox

  • Gambero
  • **
  • Post: 77
    • Mostra profilo
Re: [RISOLTO]Ritornare parametro da form in chiusura
« Risposta #4 il: 18 Novembre 2013, 16:11:21 »
Forse ho risolto..
Tra stasera e domani vi posto come ho fatto (se funziona).
 :ciao:
:-)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.179
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: [RISOLTO]Ritornare parametro da form in chiusura
« Risposta #5 il: 18 Novembre 2013, 17:33:03 »
Io ritengo che il fulcro stia sostanzialmente in questa risposta:
http://www.gambas-it.org/smf/index.php?topic=1259.msg14071#msg14071


Ho provato sulla base di quell'indicazione di md9327 a ricreare una situazione, in cui viene passato alla chiusura del Form secondario un valore di tipo Stringa al Form principale.
Nel Form principale abbiamo un Button ed il seguente codice:
Codice: gambas [Seleziona]

Public Sub Button1_Click()

 Dim f As Form1
 Dim s As New String[]

   s.Add("alibaba")

   f = New Form1(s)

' Un eventuale valore intero ritornato dal metodo ".ShowModal"
' in questo caso non è fondamentale:
   f.ShowModal()

   Print "s = "; s[1]

End




Mentre nel Form secondario (che abbiamo chiamato Form1) abbiamo un Button ed ilseguente codice:
Codice: gambas [Seleziona]

Private ps As String[]


Public Sub _new(s As String[])
  
   ps = s
  
End


Public Sub Button1_Click()
 
   ps.Add(ps[0] & " e i 40 ladroni")
  
   Me.Close()

End
« Ultima modifica: 19 Novembre 2013, 09:32:04 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »