Autore Topic: Far apparire un logo in base ad una scelta  (Letto 2480 volte)

Offline mariulin

  • Gamberetto
  • *
  • Post: 20
    • Mostra profilo
Far apparire un logo in base ad una scelta
« il: 30 Luglio 2012, 17:45:16 »
Ciao a tutti.

Sto creando un piccolo programmino con Gambas2 per ascoltare via Web le radio FM.
In breve, sulla schermata principale, ci sono le icone delle varie radio e cliccando sopra viene eseguita una routine EXEC ["/home/utente/radiofm/prova1"] dove all'interno del file prova1,  viene lanciato mplayer con il link dello streming.

Volevo sapere se era possibile, in base alla selezione fatta (radioX, radioY, radioZ), far apparire l'icona della radio selezionata sulla finestra principale.

Spero di essermi spiegato.

Grazie a tutti

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Far apparire un logo in base ad una scelta
« Risposta #1 il: 30 Luglio 2012, 19:15:49 »
Volevo sapere se era possibile, in base alla selezione fatta (radioX, radioY, radioZ), far apparire l'icona della radio selezionata sulla finestra principale.

A mio modestissimo parere dovresti verificare se è possibile "raccogliere" l'icona della radio selezionata come file immagine, e quindi piazzarla ad esempio in una PictureBox.
« 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. »

Offline mariulin

  • Gamberetto
  • *
  • Post: 20
    • Mostra profilo
Re: Far apparire un logo in base ad una scelta
« Risposta #2 il: 31 Luglio 2012, 09:39:31 »
Sapevo che non sarei riuscito a spiegarmi.... :'(

La mia domanda è se è possibile e, se lo fosse, come fare per fa si che una volta che ho cliccato sull'icona della radio prescelta, mi appaia sul lato SX in basso una scritta (Esempio: Now playing...) e di fianco alla scritta l'icona della radio selezionata.

Vi allego l'interfaccia base del mio programmino...

Grazie ancora...

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Far apparire un logo in base ad una scelta
« Risposta #3 il: 31 Luglio 2012, 17:51:40 »
Sapevo che non sarei riuscito a spiegarmi.... :'(

La mia domanda è se è possibile e, se lo fosse, come fare per fa si che una volta che ho cliccato sull'icona della radio prescelta, mi appaia sul lato SX in basso una scritta (Esempio: Now playing...) e di fianco alla scritta l'icona della radio selezionata.

Io non so se ho ben capito, ma mi sambra di capire che tu vuoi far apparire l'icona della radio selezionata, ossia mostrare una immagine ridotta dell'immagine grande appartenente alla radio selezionata, nell'angolo a sinistra in basso.

Dall'interfaccia del tuo programma è possibile vedere che tu già "possiedi" e gestisci liberamente le immagini delle varie radio.
Se è così io procederei in grandi linee in questo modo.
Poniamo il caso di avere sull'interfaccia due immagini relative a due sole (qui per comodità) radio. Le due immagini delle radio saranno mostrate in due diverse PictureBox, alle quali sarà stato assegnato un identico nome di Gruppo, ad esempio: pBox. Poi a ciascuna PictureBox sarà stato assegnato un proprio Tag identificativo: ad esempio: 1 alla PictureBox1 e 2 alla PictureBox2.
Quindi....

Codice: gambas [Seleziona]

Public Sub Form_Open()

' carico e mostro le immagini nelle loro dimensioni normali (così come hai già fatto):
    PictureBox1.Picture = Picture.Load("percorso_immagine_normale_della_radio_1")
    PictureBox2.Picture = Picture.Load("percorso_immagine_normale_della_radio_2")

End


Public Sub pbox_MouseDown()

  Dim p As Picture

  Select Last.Tag
    Case "1"
' Se clicco sulla PictureBox1 (sulla prima radio),
' allora nella variabile "p" sarà caricata la "Picture"
' ossia l'immagine presente nella PictureBox1 medesima,
' cioè quella della prima radio:
       p = PictureBox1.Picture
    Case "2"
' Una cosa analoga accade se si clicca sulla PictureBox2:
      p = PictureBox2.Picture
  End Select


' Agisco sulla PictureBox3, che dovrà contenere invece la piccola icona
' della radio prescelta, al fine di manipolarne appunto l'immagine; più in particolare...
  With PictureBox3
'...faccio in modo che l'immagine, seppur ridotta, non sia "tagliata":
    .Stretch = True
'...riduco le dimensioni dell'immagine:
    .Resize(30, 30)
  End With

' mostro l'immagine presente nella PictureBox,
' sulla quale ho cliccato... ossia della radio selezionata:    
    PictureBox3.Picture = p

End
« Ultima modifica: 31 Luglio 2012, 18:34:51 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. »

Offline mariulin

  • Gamberetto
  • *
  • Post: 20
    • Mostra profilo
Re: Far apparire un logo in base ad una scelta
« Risposta #4 il: 31 Luglio 2012, 18:05:15 »
Leggo adesso la tua risposta, ma fino a domani non posso provare a modificare il codice e vedere se funziona. (Ma non ho dubbi in merito... ;D)
Comunque hai preso in pieno il problema.
E' proprio quello che mi serve anche se può bastarmi anche l'icona non "miniaturizzata", ma anche solo delle stesse dimensioni di quelle sopra.

Grazie

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Far apparire un logo in base ad una scelta
« Risposta #5 il: 31 Luglio 2012, 18:27:03 »
Leggo adesso la tua risposta, ....

Ho modificato un po' il codice in modo più specifico.
Sottolineo il fatto che il nuovo codice prevede che alle due PictureBox di test va assegnato identico Gruppo di appartenenza e diversi Tag !
« 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. »

Offline mariulin

  • Gamberetto
  • *
  • Post: 20
    • Mostra profilo
Re: Far apparire un logo in base ad una scelta
« Risposta #6 il: 02 Agosto 2012, 14:47:34 »
Ho provato e riprovato ad adattare il codice che mi hai dato, ma niente... Non riesco..
Forse il mio problema è che le immagini delle varie radio le ho associate direttamente al bottone e con il codice qui sotto faccio eseguire un script bash che mi lancia  mplayer in background.

PUBLIC SUB Button1_Click()

   EXEC ["/home/pippo/radiofm/r101"]

END

Scusa eh... Ma non capisco veramente niente... :'( :'(
Riesci ancora a darmi una mano???
Grazie

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Far apparire un logo in base ad una scelta
« Risposta #7 il: 02 Agosto 2012, 15:47:45 »
Ho provato e riprovato ad adattare il codice che mi hai dato, ma niente... Non riesco..
Forse il mio problema è che le immagini delle varie radio le ho associate direttamente al bottone e con il codice qui sotto faccio eseguire un script bash che mi lancia  mplayer in background.

PUBLIC SUB Button1_Click()

   EXEC ["/home/pippo/radiofm/r101"]

END

Scusa eh... Ma non capisco veramente niente... :'( :'(
Riesci ancora a darmi una mano???
Grazie
Vorrei capire una cosa: tu hai inserito un bottone per ogni immagine di radio ? Voglio dire: vedo dall'immagine che hai sopra allegato che vi sono 17 radio. Dunque hai posto 17 button con relative 17 sub-routine per avviare l'ascolto della radio selezionata ?

...comunque, anche se fosse così, ritengo che la questione non cambia: hai due possibilità.

1) dopo il comando Exec inserisci l'ultima parte del codice che sopra ti ho presentato; in particolare da With PictureBox3  in poi, avendo cura all'ultima riga di assegnare alla PictureBox, che dovrà contenere la piccola icona della radio, l'immagine della specifica radio associata a quel Button..... insomma così:
Codice: gambas [Seleziona]

....

With PictureBox3  
   .Stretch = True  
   .Resize(30, 30)  
 End With  
  
   PictureBox3.Picture = qui_la_variabile_Picture_della_radio_associata_a_questo_Button

End



2) dovresti per ciascun Button inserire un uguale Gruppo e diverso Tag, quindi agire analogamente al mio codice (lì io cliccavo sopra una della diverse PictureBox presenti sul Form; a te invece sono Button, ma... se non è zuppa, è pan bagnato.... non so se mi spiego: il discorso non cambia:
Codice: gambas [Seleziona]

Select Last.Tag  
   Case "1"  
' Se clicco su BUTTON1 (sulla prima radio),  
' allora nella variabile "p" sarà caricata la "Picture"  
' ossia l'immagine presente nel BUTTON1 medesimo,  
' cioè quella della prima radio:  
      p = Button1.Picture  


Come dici ?..... Che fine fa ogni riga di comando Exec ? La poni sempre all'interno del Case relativo a quel determinato .Tag del Button cliccato. Magari - se vuoi - la poni alla fine di ciascun Case:
Codice: gambas [Seleziona]

   Case "1"  
      p = Button1.Picture
      Exec ["/home/pippo/radiofm/r101"]


Ovviamente dopo l'End Select avremo la parte finale:
Codice: gambas [Seleziona]

......

End Select  
  
  
' Agisco sulla PictureBox3, che dovrà contenere invece la piccola icona  
' della radio prescelta, al fine di manipolarne appunto l'immagine; più in particolare...  
 With PictureBox3  
'...faccio in modo che l'immagine, seppur ridotta, non sia "tagliata":  
   .Stretch = True  
'...riduco le dimensioni dell'immagine:  
   .Resize(30, 30)  
 End With  
  
' mostro l'immagine presente nel BUTTON,  
' sul quale ho cliccato... ossia della radio selezionata:      
   PictureBox3.Picture = p  
  
End  


Nel tuo caso avrai una sola PictureBox, quella che qui è numerata con il tre: PictureBox3, e che conterrà ovviamente la piccola icona della radio prescelta.
« Ultima modifica: 02 Agosto 2012, 16:33:56 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. »

Offline mariulin

  • Gamberetto
  • *
  • Post: 20
    • Mostra profilo
Re: Far apparire un logo in base ad una scelta
« Risposta #8 il: 02 Agosto 2012, 16:13:52 »
Citazione
Dunque hai posto 17 button con relative 17 sub-routine per avviare l'ascolto della radio selezionata ?
Si esatto.. So che non sarà un gran modo di programmare, ma ho visto Gambas davvero per pochi minuti e quello che ho fatto mi sembra già un miracolo :2birre:

Citazione
2) dovresti per ciascun Button inserire un uguale Gruppo e diverso Tag, quindi agire analogamente al mio codice (lì io cliccavo sopra una della diverse PictureBox presenti sul Form; a te invece sono Button, ma... se non è zuppa, è pan bagnato.... non so se mi spiego: il discorso non cambia !
Come dici ?..... Che fine fa ogni riga di comando Exec ? La poni sempre all'interno del Case relativo a quel determinato .Tag del Button cliccato. Magari poni quella riga con Exec alla fine di ciascun Case.

Stesso Gruppo e diverso Tag?? Uhhh???? Mamma.... Ci provo dai, ma sono in confusione totale..  Comunque ti ringrazio e per la pazienza che hai..

Al massimo ti disturbo ancora OK?  Grazie davvero... :ok:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Far apparire un logo in base ad una scelta
« Risposta #9 il: 02 Agosto 2012, 16:21:51 »

Stesso Gruppo e diverso Tag?? Uhhh???? Mamma.... Ci provo dai, ma sono in confusione totale..  Comunque ti ringrazio e per la pazienza che hai..


Guarda, è facile: nell'Ide di Gambas.... cioè nel programma dove.... programmi, clicchi su un Button e nella colonna a destra vedi comparire le sue proprietà: c'è anche Group e Tag.
Metti un nome qualsiasi a Group che però dovrà essere identico per tutti i Button che vai a considerare; mentre per i Tag di ciascun Button metti un diverso nome per ciascun Button.... basta anche un solo carattere: che so ? Per esempio, per il Button1 metti 1, per il Button2 metti 2, e così via.
Se, per esempio, tu inserissi come Tag del Button1 il nome: Mariulin1 e per il Button2 invece Mariulin2, e così via per gli altri, allora dopo la parola Case del mio esempio di sopra dovrai mettere:
Codice: gambas [Seleziona]

Select Last.Tag     ' <---- verifichiamo il tag dell'evento dell'ultimo oggetto intercettato
   Case "Mariulin1"  
     ........ ' qui il resto delle istruzioni
   Case "Mariulin2"
     ........ ' qui il resto delle istruzioni
   Case ....e così via

Ciò significa che viene intercettato l'evento di un oggetto innanzitutto appartenente a quel Gruppo, poi con i "Case" si procede a distinguere all'interno del gruppo i vari oggetti individuali sulla base del loro Tag.... che sarebbe in questo caso il loro segno distintivo di riconoscimento. Se vuoi, potremmo fare il paragone con una famiglia: abbiamo la famiglia classica Rossi (che nel nostro caso è il nome che tu dai al Gruppo). Gli appartenenti (nel tuo caso i Button) a quella famiglia si possono distinguere in base a qualche segno particolare (nel tuo caso il Tag).
Non so se sono stato chiaro.  :-X

Insomma, nel Select Case (quindi con un'unica routine ! Questa è la comodità e la finezza) potrai intercettare il clic di quei Button appartenenti tutti allo stesso Gruppo, ma potrai distinguerli in base al loro specifico .Tag...... anche se - è bene specificarlo - il Tag non è l'unica proprietà di un oggetto possibile per effettuare la distinzione ! (Potrei infatti usare come punto di riferimento anche altre proprietà.... per esempio.... il colore della proprietà .BackGround che ho impostato per ciascun Button.... o anche addirittura la grandezza della proprietà .Font ! Anche se - puoi ben intuire - però magari avrai più di un Button con quella grandezza del Font... ed allora la distinzione fallisce. Perciò è meglio e più sbrigativo usare il Tag, al quale attribuisci sostanzialmente un codice alfanumerico.).
« Ultima modifica: 03 Agosto 2012, 20:11:26 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. »

Offline mariulin

  • Gamberetto
  • *
  • Post: 20
    • Mostra profilo
Re: Far apparire un logo in base ad una scelta
« Risposta #10 il: 02 Agosto 2012, 16:30:59 »
Ok. Sono già un po' meno confuso... Ci proverò senz'altro... Appena riesco, vedo di riscrivere un po' il mio programmino..

Grazie 1000 per adesso.. Ti farò sapere....

Offline mariulin

  • Gamberetto
  • *
  • Post: 20
    • Mostra profilo
Re: Far apparire un logo in base ad una scelta
« Risposta #11 il: 02 Agosto 2012, 17:48:42 »
Niente da fare... Non riesco a capire niente.. Non capisco dove inserire le linee di codice, non capisco se devo mantenere quello che ho gia fatto io, a ogni modifica che faccio mi saltano fuori tre eeriri diversi.. Penso che non ce la farò mai... E' davvero complicato...

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Far apparire un logo in base ad una scelta
« Risposta #12 il: 02 Agosto 2012, 18:15:43 »
Niente da fare... Non riesco a capire niente.. Non capisco dove inserire le linee di codice, non capisco se devo mantenere quello che ho gia fatto io, a ogni modifica che faccio mi saltano fuori tre eeriri diversi.. Penso che non ce la farò mai... E' davvero complicato...
Ma no... ci vuole come per ogni cosa: tenacia.

Potresti fare delle prove, per prendere familiarità con le cose sopra espresse, creando un programmino-Test mediante il primo codice che ti ho scritto. Devi solo inserire tre PictureBox sul form, impostare un unico nome di "Gruppo" e un diverso "Tag" per ciascuna.


Se no... a questo punto dovrei vedere il tuo codice: quello originario. Se vuoi puoi inviarmelo per posta elettronica.
Il mio indirizzo e-mail lo trovi nel mio profilo.

In alternativa dovresti elencare modifica effettuata e corrispondente errore evidenziato.
« Ultima modifica: 12 Settembre 2012, 11:24:47 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. »

Offline mariulin

  • Gamberetto
  • *
  • Post: 20
    • Mostra profilo
Re: Far apparire un logo in base ad una scelta
« Risposta #13 il: 03 Agosto 2012, 17:28:16 »
Ce l'ho fatta... E' stata dura, ma alla fine ho risolto.  ;D


Per Vuott:
Grazie per tutto il codice che mi hai dato e il tempo che hai perso  :2birre:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Far apparire un logo in base ad una scelta
« Risposta #14 il: 03 Agosto 2012, 19:17:33 »
Ce l'ho fatta... E' stata dura, ma alla fine ho risolto.  ;D
Sono davvero molto contento, non  solo perché hai risolto una questione relativa al tuo programma specifico, ma soprattutto perché hai appreso un'informazione in più che ti potrà servire nnella tua futura programmazione.

I principi pedagogici di md9327 sono davvero efficaci.



Per Vuott:
...e il tempo che hai perso
...non ho perso tempo: è stato per me in fondo un esercizio ed un tornare su alcuni argomenti.

    :ciao:
« 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. »