Gambas-it

Gambas3 => Programmazione => Topic aperto da: kicco - 11 Settembre 2019, 13:51:44

Titolo: Salvare lo sfondo.
Inserito da: kicco - 11 Settembre 2019, 13:51:44
 :ciao:
Vorrei salvare lo sfondo della finestra principale.
Lo carico con:
Codice: [Seleziona]
  Me.picture = Picture.load("kicco.jpg")

e tento di salvarlo nel file di configurazione con:
Codice: [Seleziona]
Settings["Sfondo"] = Me.Picture  ???
Che non funziona!
Pensavo di usare Me.picture(image. ....).
Ma forse sono sulla strada sbagliata!  :'(
 :ciao:
Titolo: Re:Salvare lo sfondo.
Inserito da: cogier - 11 Settembre 2019, 16:18:13
Mettere l'immagine nella cartella del programma. Rimarrà quindi con il programma.

(http://www.cogier.com/gambas/kicco1.png)
Titolo: Re:Salvare lo sfondo.
Inserito da: kicco - 11 Settembre 2019, 16:25:01
Grazie cogier per la risposta.
In realtà ho scritto un esempio compatto, forse un po' troppo!
Nel programma reale lo sfondo può essere sostituito e alla chiusura del programma devo scrivere nel file di configurazione (quello generato da gb.Settings) il nome dello sfondo e la relativa path.
Grazie ancora!
 :ciao:
Titolo: Re:Salvare lo sfondo.
Inserito da: vuott - 11 Settembre 2019, 16:37:41
e tento di salvarlo nel file di configurazione con:
Codice: [Seleziona]
Settings["Sfondo"] = Me.Picture  ???
Che non funziona!
Non può funzionare, poiché Settings[ ] non può ricevere alcun valore per mezzo dell'operatore di assegnazione.
Titolo: Re:Salvare lo sfondo.
Inserito da: kicco - 11 Settembre 2019, 16:44:46
Citazione
Settings[ ] non può ricevere alcun valore per mezzo dell'operatore di assegnazione.
L'operatore di assegnazione è il simbolo = (uguale)?
Se così fosse però in tutte le altre operazioni, come ad esempio:
Citazione
Settings["nome"]= TextBox1.text
che funziona!
 :ciao:
Titolo: Re:Salvare lo sfondo.
Inserito da: vuott - 11 Settembre 2019, 16:57:47
:-\
Titolo: Re:Salvare lo sfondo.
Inserito da: vuott - 11 Settembre 2019, 17:18:08
Tu vuoi una cosa come questa ?

Codice: [Seleziona]
Public Sub Form_Open()

   Dim pc As Picture

   Me.Picture = Picture.Load("/percorso/del/file/immagine")
   
   Settings["chiave"] = Me.Picture
 
   pc = Settings["chiave"]
 
   pc.Save("/tmp/nuovo/file/immagine.png", 100)

End
Titolo: Re:Salvare lo sfondo.
Inserito da: kicco - 11 Settembre 2019, 18:26:05
la questione è che il comnado:
Codice: [Seleziona]
 Settings["chiave"] = Me.Picture
nel file di configurazione, mi scrive solo:
Citazione
chiave=""
correzione:
Citazione
chiave= 
:-\
Titolo: Re:Salvare lo sfondo.
Inserito da: kicco - 11 Settembre 2019, 19:02:51
Se qualcuno volesse giocare.... :P
allego il grande progetto!!!

Questo è il risultato che trovo in .config/gambas3/Salva_sfondo.conf
Citazione
[General]
Sfondo=
:ciao:
Titolo: Re:Salvare lo sfondo.
Inserito da: Gianluigi - 11 Settembre 2019, 19:29:20
Controlla perchè non l'ho verificato.
Se fai così di default dovrebbe caricare lo sfondo iniziale, ma se nel corso del programma lo cambi al prossimo avvio ottieni il nuovo sfondo.
Almeno credo.

Codice: [Seleziona]
Private sPath As String = "./Appropriately-Left-Handed-2.jpg"

Public Sub Form_open()

      sPath = Settings["Sfondo/Path", sPath]
      Me.picture = Picture.load(sPath)

End

Public Sub Form_Close()

      Settings["Sfondo/Path"] = sPath
      Settings.save

End

 :ciao: :ciao:
Titolo: Re:Salvare lo sfondo.
Inserito da: Gianluigi - 11 Settembre 2019, 19:42:44
Si funziona l'ho verificato, vedi esempio allegato

 :ciao: :ciao:
Titolo: Re:Salvare lo sfondo.
Inserito da: kicco - 11 Settembre 2019, 20:15:54
Stavo proprio scrivendotelo:
FUNZIONA!
 :-*
Titolo: Re:Salvare lo sfondo.
Inserito da: vuott - 11 Settembre 2019, 23:23:15
...ma quindi a te interessava semplicemente salvare in Settings il percorso del file immagine ?
Titolo: Re:Salvare lo sfondo.
Inserito da: vuott - 12 Settembre 2019, 00:35:23
...ad ogni modo Settings puoi usarlo anche per salvare direttamente i dati dell'immagine prescelta.

Ti mostro un breve esempio didattico:
Codice: [Seleziona]
Public Sub Form_Open()

' Salviano i dati dell'immagine mediante "Settings":
  Settings["immagine"] = File.Load("/percorso/del/file/immagine")
 
  Settings.Save
 

' Ora carichiamo i dati dell'immagine precedentemente salvata con "Settings",
' e mostriamo l'immagine in una "PictureBox":
  PictureBox1.Image = Image.FromString(Settings["immagine"])

End
Titolo: Re:Salvare lo sfondo.
Inserito da: kicco - 12 Settembre 2019, 13:19:36
Sì Vuott questa era la soluzione che andavo cercando!
 :)
Titolo: Re:Salvare lo sfondo.
Inserito da: Gianluigi - 12 Settembre 2019, 15:21:06
Sì Vuott questa era la soluzione che andavo cercando!
 :)

Io non riesco a metterlo in pratica, vale a dire che non riesco a salvare uno sfondo diverso e a mostrarlo all'apertura successiva.
Mi fai vedere, please & por favor.

 :ciao: :ciao:
Titolo: Re:Salvare lo sfondo.
Inserito da: kicco - 12 Settembre 2019, 16:02:54
Citazione
Mi fai vedere, please & por favor.
Non ho fatto la prova ancora! :P
Titolo: Re:Salvare lo sfondo.
Inserito da: vuott - 12 Settembre 2019, 16:08:55
Citazione
Mi fai vedere, please & por favor.
Non ho fatto la prova ancora! :P

Comunque vada la prova, non è colpa mia !   ;D
Titolo: Re:Salvare lo sfondo.
Inserito da: Gianluigi - 12 Settembre 2019, 17:50:00
Comunque vada la prova, non è colpa mia !   ;D

aiah, povero kicco  :'(
Titolo: Re:Salvare lo sfondo.
Inserito da: vuott - 12 Settembre 2019, 19:19:11
Non funziona.
Titolo: Re:Salvare lo sfondo.
Inserito da: vuott - 13 Settembre 2019, 02:16:18
Non funziona.
...altrimenti, kicco, se vuoi una soluzione analoga a "Settings" puoi provare questo esempio:   :D
Codice: [Seleziona]
Private Const CONFIG As String = ".config/gambas3/immagine"


Public Sub Form_Open()

  Dim pc As Picture

  If Exist(User.Home &/ CONFIG) Then
    pc = Picture.Load(User.Home &/ CONFIG)
  Else
    pc = Picture.Load("/percorso/del/file/immagine/iniziale")
  Endif

  Me.Picture = pc

End

Public Sub Form_Close()

   File.Save(User.Home &/ CONFIG, File.Load("/percorso/del/file/immagine/da/caricare/alla/successiva/apertura/del/programma"))

End
Titolo: Re:Salvare lo sfondo.
Inserito da: kicco - 13 Settembre 2019, 09:20:10
@ Gianluigi & Vuott ( vi ricordate "Attenti a quei due....")

in questo weekend non riesco a fare prove!
Lunedì posso riprendere a giocare.
Nel frattempo, mi raccomando!!!  :P
 :ciao:
Titolo: Re:Salvare lo sfondo.
Inserito da: vuott - 13 Settembre 2019, 10:10:27
in questo weekend non riesco a fare prove!


kiccoooooo.... FUORI !!!

(https://media3.giphy.com/media/kC8zzkO035xMY0ShNK/giphy.gif)