Italian Label1 Color RGB

marco.canta

Active Member
Licensed User
Longtime User
Ciao, sto cercando di definire da codice il colore del fondo di una label con i parametri RGB.
Ho cercato sia qui sul forum che su google, ma non ho trovato ho forse non ho saputo trovare nulla.
Stesso problema con il Pane1

Mi date un aiuto

Grazie Marco.
 
Last edited:

marco.canta

Active Member
Licensed User
Longtime User
Grazie Luca per la tua risposta, sei sempre pronto ad un aiuto !!

Ho provato ... ma sia con Label che Pane, ma mi da errore segnalandola rossa la parola "Colors"

Pane1.Color = Colors.Blue

Da cosa puo dipendere ?
 

djveleno

Active Member
Licensed User
Longtime User
Se ad ad esempio voglio avere un bottone Rosso dovrò scrivere questo codice:

Dim btn AS Button

btn.Color = Colors.Red

Quindi se Pane1 è stata dichiarata la variabile come Panel il codice deve funzionare:

Dim Pane1 As Panel

Pane1.Color = Colors.Blue
 

marco.canta

Active Member
Licensed User
Longtime User
Ho fatto esattamente come hai descritto tu sopra...

Dim Pane1 as Panel
Pane1.Color = Colors.Blue

Il problema è che "Colors" continua a segnalarmelo come errore in rosso

P.S. Sto utilizzando B4J
 

LucaMs

Expert
Licensed User
Longtime User
Ho fatto esattamente come hai descritto tu sopra...

Dim Pane1 as Panel
Pane1.Color = Colors.Blue

Il problema è che "Colors" continua a segnalarmelo come errore in rosso

P.S. Sto utilizzando B4J

Colpa della mia "cecitaggine" , infatti ho letto, forse automaticamente, Panel anziche Pane1, altrimenti forse avrei intuito, hehehe
B4X:
Button1.Style = "-fx-background-color:#ffff35;"
Pane1.Style = "-fx-background-color:#0000ff;"



Si potrebbe usare anche qualcosa di questo genere; non sono certissimo della funzione scritta sotto, ho solo cercato di sfruttare FX.Color:
B4X:
Button1.Style = "-fx-background-color:" & StyleColorString(fx.Colors.Yellow)
...

Sub StyleColorString(FXColor As String) As String
    Return "#" & FXColor.SubString(2) & ";"
End Sub




P.S. meglio ancora:
B4X:
Button1.Style = SetStyleBackground(fx.Colors.Red)
...


Sub SetStyleBackground(Color As Object) As String
    Return "-fx-background-color:" & StyleColorString(Color)
End Sub

Sub StyleColorString(FXColor As String) As String
    Return "#" & FXColor.SubString(2) & ";"
End Sub
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Ho pubblicato sul "forum inglese" una domanda a questo riguardo ed Erel mi ha fatto notare (direi ricordare) che se imposti il colore da codice, perdi le eventuali caratteristiche impostate tramite Designer (per fare un esempio, gli angoli arrotondati di un panel b4a).
 

LucaMs

Expert
Licensed User
Longtime User
Infine (spero ), sempre considerando che si perdono proprietà impostate tramite Designer:
B4X:
' Sets the background color of a Node
' Color: pass a "JFX.Color" object
Sub SetBGColor(MyNode As Node, Color As Object)
    Dim strColor As String = Color
    MyNode.Style = "-fx-background-color:" & "#" & strColor.SubString(2) & ";"
End Sub

Dovrebbe funzionare con qualunque tipo di "view"... spero; al limite, inserite il codice in un blocco Try-Catch.
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
... e infatti, non era quello il finale.

Erel mi ha indicato una sua classe che fa questa cosa in maniera migliore (se non erro, conserva le proprietà impostate da Designer... MO provo ... P.S. provato: esatto, conserva le proprietà, OTTIMO!)
https://www.b4x.com/android/forum/threads/class-cssutils.61824/

Se l'avessi saputo prima, i miei due neuroni starebbero ancora in piedi
(beh, ho imparato qualcosa di nuovo, sperando di ricordarmelo )


Questo è il vero finale del thread.
 
Last edited:

marco.canta

Active Member
Licensed User
Longtime User
Grazie mille Luca !

Provato anche io ... funziona tutto perfettamente con la classe di Erel.

 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…