Gambas-it

Gambas dal mondo esterno => Spagna => Topic aperto da: vuott - 17 Ottobre 2023, 02:22:54

Titolo: ComboBox con immagini anziché testo
Inserito da: vuott - 17 Ottobre 2023, 02:22:54
https://gambas-es.org/showthread.php?tid=1520
Titolo: Re:ComboBox con immagini anziché testo
Inserito da: Gianluigi - 17 Ottobre 2023, 11:03:00
https://gambas-es.org/showthread.php?tid=1520

Suggerisco questo codice:
Codice: [Seleziona]
Public Sub Form_Open()

  Dim hCombo As ComboBox

  If Fonts.Exist("D050000L") Or If Fonts.Exist("D050000L [urw]") Or If Fonts.Exist("D050000L [URW ]") Then
    With hCombo = New ComboBox(Me) As "ComboBox1"
      .X = 50
      .Y = 50
      .H = 35
      .W = 130
      .Font = Font["D050000L,Bold,14"]
      .Foreground = Color.RGB(197, 166, 67)
      ' .List = ["QQQQQ", "QQQQ", "QQQ", "QQ", "Q"] ' <--- asterischi
      .List = ["MMMMM", "MMMM", "MMM", "MM", "M"]   ' <--- stelle
    End With
  Else
    Message.Warning("Devi installare il Font D050000L")
    Me.Close
  Endif

End

 :ciao:

P.S. la "M" è proprio la stella, la "Q" un asterisco e naturalmente funziona con tastiera QWERTY
Titolo: Re:ComboBox con immagini anziché testo
Inserito da: Gianluigi - 18 Ottobre 2023, 16:41:59
Modificato il codice, adesso dovrebbe funzionare anche con le librerie QT

 :ciao:
Titolo: Re:ComboBox con immagini anziché testo
Inserito da: vuott - 19 Ottobre 2023, 12:24:42
Ottima soluzione, Gianluigi, quella dell'uso dei Font.
Io non c'ho pensato, essendo stato tratto in inganno nel post dalla parola "immagini", come Oggetto "Image".

Ad ogni modo io ritengo che, riprendendo il tuo codice, al fine di garantire una assoluta e universale compatibilità, sia preferibile usare lo standard UNICODE.
Ad esempio:
Codice: [Seleziona]
Public Sub Form_Open()

  Dim hCombo As ComboBox

  With hCombo = New ComboBox(Me) As "ComboBox1"
    .X = 50
    .Y = 50
    .H = 35
    .W = 140
    .Foreground = Color.RGB(197, 166, 67)
    .Font.Size = 20
      For b As Byte = 5 DownTo 1
        .Add(String(b, String.Chr(&272d)))
      Next
    End With
 
End
Titolo: Re:ComboBox con immagini anziché testo
Inserito da: Gianluigi - 19 Ottobre 2023, 13:50:12
Ottima e breve soluzione, senza problemi di librerie.  :ok:

...e questa non è venuta in mente a me  :)
Titolo: Re:ComboBox con immagini anziché testo
Inserito da: Gianluigi - 19 Ottobre 2023, 14:19:33

Ad ogni modo io ritengo che, riprendendo il tuo codice, al fine di garantire una assoluta e universale compatibilità, sia preferibile usare lo standard UNICODE.


Mi sorge un dubbio, e se dovessi fare un copia incolla?

Fantastico, la tua è la soluzione corretta  :ok:

 :ciao:
Titolo: Re:ComboBox con immagini anziché testo
Inserito da: vuott - 19 Ottobre 2023, 15:13:00
Mi sorge un dubbio, e se dovessi fare un copia incolla?

In che seSSo ?  ???
Titolo: Re:ComboBox con immagini anziché testo
Inserito da: Gianluigi - 19 Ottobre 2023, 15:30:08
Mi sorge un dubbio, e se dovessi fare un copia incolla?

In che seSSo ?  ???
Se selezioni le stelle della mia combo le copi e le incolli in altro controllo, se non predisponi il controllo, otterrai delle M.
Col tuo codice ottieni comunque delle stelle anche in altro programma tipo Editor di testo.

A proposito di stelle che ne dici di queste?
https://www.compart.com/en/unicode/U+2605

 :ciao:
Titolo: Re:ComboBox con immagini anziché testo
Inserito da: vuott - 19 Ottobre 2023, 15:36:34
Se selezioni le stelle della mia combo le copi e le incolli in altro controllo, se non predisponi il controllo, otterrai delle M.
Col tuo codice ottieni comunque delle stelle anche in altro programma tipo Editor di testo.
Appunto... UNICODE è uno Standard, quindi è universale.


A proposito di stelle che ne dici di queste?
https://www.compart.com/en/unicode/U+2605
Tra i simboli di UNICODE ci sono molte stelle: &H1F31F; &H2B50, da &H27929 a &H2730; &H2605 e &H2606