Gambas-it

Gambas3 => Programmazione => Topic aperto da: Gianluigi - 13 Luglio 2020, 16:04:24

Titolo: Assegnare una libreria ad un progetto in modo dinamico.
Inserito da: Gianluigi - 13 Luglio 2020, 16:04:24
Mi riferisco a una discussione privata con Hans Lehmann autore principale di Gambas Book e a questa discussione:
https://lists.gambas-basic.org/pipermail/user/2018-October/065687.html

Allego un progettino che dimostra come assegnare in modo dinamico una libreria ad un progetto Gambas, vale a dire senza doverlo fare dalla finestra progetto.

Questo invece è il codice interno alla libreria nel modulo Mat:
Codice: [Seleziona]
Export

Public Function ReturnAddString(value As String[]) As String
' Ritorna la somma dei numeri 'stringa' come una stringa formattata currency
  Dim sCurr As String
  Dim iCurr As Long

  For i As Integer = 0 To value.Max
    sCurr = ReturnStringInteger(value[i])
    iCurr += CLong(sCurr)
  Next
  Return Format((iCurr / 100), "$,0.00")

End

Private Function ReturnStringInteger(value As String) As String
' Ritorna una stringa in forma di numero intero
  value = Trim(Replace(value, "€", ""))
  value = Replace(value, ".", "")
  value = Replace(value, " ", "")
  value = Replace(value, ",", "")
  Return value

End

 :ciao:
Titolo: Re:Assegnare una libreria ad un progetto in modo dinamico.
Inserito da: vuott - 13 Luglio 2020, 17:08:28
Lanciando il programma, appare una finestra con il messaggio di errore: "Unable to proceed".   :-\
Titolo: Re:Assegnare una libreria ad un progetto in modo dinamico.
Inserito da: Gianluigi - 13 Luglio 2020, 17:16:15
Lanciando il programma, appare una finestra con il messaggio di errore: "Unable to proceed".   :-\
A me funziona bene  :-\
Viene dal modulo MMain potresti per cortesia inserire uno stop all'inizio e dirmi dove ti da errore?
Titolo: Re:Assegnare una libreria ad un progetto in modo dinamico.
Inserito da: vuott - 13 Luglio 2020, 17:19:21
Osservando in modalità "passo-passo", l'errore si scatena qui:

Codice: [Seleziona]
sLocalPath = User.Home &/ ".local/share/gambas3/lib"
If Not Exist(sLocalPath) Then Try Mkdir sLocalPath
  If Error Then
    Message.Error(sMessage)
    Return
  Endif
Titolo: Re:Assegnare una libreria ad un progetto in modo dinamico.
Inserito da: Gianluigi - 13 Luglio 2020, 17:21:51
Osservando in modalità "passo-passo", l'errore si scatena qui:

Codice: [Seleziona]
If Not Exist(sLocalPath) Then Try Mkdir sLocalPath
  If Error Then
    Message.Error(sMessage)
    Return
  Endif

Ma ce ne sono tre uguali, puoi essere più preciso  :)
Titolo: Re:Assegnare una libreria ad un progetto in modo dinamico.
Inserito da: vuott - 13 Luglio 2020, 17:23:02
Sì, scusami, ho integrato le righe di codice sopra.
Titolo: Re:Assegnare una libreria ad un progetto in modo dinamico.
Inserito da: vuott - 13 Luglio 2020, 17:24:23
Ad ogni modo io non ho la cartella "/gambas3" nel percorso "..../.local/share/"
Titolo: Re:Assegnare una libreria ad un progetto in modo dinamico.
Inserito da: Gianluigi - 13 Luglio 2020, 17:27:13
Ad ogni modo io non ho la cartella "/gambas3" nel percorso "..../.local/share/"
A ecco dove sta l'inghippo, ti andrebbe di provare ad aggiungerla e vedere se funziona, anzi aspetta che aggiorno il codice.

Grazie  :-*
Titolo: Re:Assegnare una libreria ad un progetto in modo dinamico.
Inserito da: Gianluigi - 13 Luglio 2020, 17:33:40
Ho aggiornato il codice, io ho la cartella gambas3 per via del software della farm e non ho pensato che altri potrebbero non avercela.

Ti ringrazio molto
Titolo: Re:Assegnare una libreria ad un progetto in modo dinamico.
Inserito da: vuott - 13 Luglio 2020, 17:40:04
Ovviamente quando si perde tempo in altri progetti, anziché concentrarsi sula Macchina del Tempo !

(https://steamuserimages-a.akamaihd.net/ugc/94976093000551280/F5FDA66D7BE6B0E9CAA3098407180D68F3B0A4C3/)
Titolo: Re:Assegnare una libreria ad un progetto in modo dinamico.
Inserito da: vuott - 13 Luglio 2020, 17:43:07
Ho aggiornato il codice

Ora funziona.

Potresti creare un apposito paragrafo all'interno di questa pagina ?
   https://www.gambas-it.org/wiki/index.php?title=Importare_ed_utilizzare_librerie_.gambas
Titolo: Re:Assegnare una libreria ad un progetto in modo dinamico.
Inserito da: Gianluigi - 13 Luglio 2020, 17:48:31
Ho aggiornato il codice

Ora funziona.

Potresti creare un apposito paragrafo all'interno di questa pagina ?
   https://www.gambas-it.org/wiki/index.php?title=Importare_ed_utilizzare_librerie_.gambas

Si lo faccio molto volentieri.  :)

Ti ringrazio ancora  :ciao:
Titolo: Re:Assegnare una libreria ad un progetto in modo dinamico.
Inserito da: Gianluigi - 13 Luglio 2020, 17:50:37
Ovviamente quando si perde tempo in altri progetti, anziché concentrarsi sula Macchina del Tempo !

(https://steamuserimages-a.akamaihd.net/ugc/94976093000551280/F5FDA66D7BE6B0E9CAA3098407180D68F3B0A4C3/)

 :D

Ma per bere una birra hai bisogno della macchina del tempo  :-\
Titolo: Re:Assegnare una libreria ad un progetto in modo dinamico.
Inserito da: vuott - 13 Luglio 2020, 18:19:34
Ma per bere una birra hai bisogno della macchina del tempo  :-\

...LA chiami "birra" tu ?   :bad:
Titolo: Re:Assegnare una libreria ad un progetto in modo dinamico.
Inserito da: Gianluigi - 14 Luglio 2020, 15:11:37

Potresti creare un apposito paragrafo all'interno di questa pagina ?
   https://www.gambas-it.org/wiki/index.php?title=Importare_ed_utilizzare_librerie_.gambas

A gentile richiesta, ho aggiunto il paragrafo.
Purtroppo si nota subito la diversa proprietà di linguaggio, perdonatemi.
Spero vada bene, sono a disposizione per eventuali cambiamenti.

Ho anche aggiornato il progetto del primo post perché conteneva ancora i commenti di quando volevo chiedere il vostro aiuto perché non capivo come mai Object.Call non accettava i parametri, (le famose parentesi quadre).

 :ciao:
Titolo: Re:Assegnare una libreria ad un progetto in modo dinamico.
Inserito da: vuott - 14 Luglio 2020, 19:49:51
Purtroppo si nota subito la diversa proprietà di linguaggio, perdonatemi.

E' chiaro: IO parlo di Macchina del Tempo, tu di birra !   :bad:
Titolo: Re:Assegnare una libreria ad un progetto in modo dinamico.
Inserito da: Gianluigi - 14 Luglio 2020, 22:36:03
E' chiaro: IO parlo di Macchina del Tempo, tu di birra !   :bad:

 :rotfl:  :ok: