Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Controllo Text non supporta colori di sfondo trasparenti
Forum - C# / VB.NET - Controllo Text non supporta colori di sfondo trasparenti - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Carlo (Member)
Guru^2


Messaggi: 1420
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 12:45
Venerdì, 14/06/2024
Testo quotato

Postato originariamente da alip1:
Buongiorno Carlo.
Solo una domanda di curiosita': dove è possibile apprendere che il formato in bit dei colori in vba ha quello da te correttamente indicato 8b8g8r? Grazie



Il metodo più semplice è aprire VBA in Excel e guardare i codici esadecimali che risultano in base ai colori scelti.

In allegato immagine VBA aperto in Excel con in evidenza i colori rosso, verde e blu di un form


Carlo ha allegato un file: VBA.jpg (24098 bytes)
Clicca qui per guardare l'immagine

Ultima modifica effettuata da Carlo il 14/06/2024 alle 13:06


in programmazione tutto è permesso
PM Quote
Avatar
alip1 (Normal User)
Pro


Messaggi: 145
Iscritto: 12/08/2019

Segnala al moderatore
Postato alle 19:53
Venerdì, 14/06/2024
Testo quotato

Postato originariamente da Carlo:

Testo quotato

Postato originariamente da alip1:
Buongiorno Carlo.
Solo una domanda di curiosita': dove è possibile apprendere che il formato in bit dei colori in vba ha quello da te correttamente indicato 8b8g8r? Grazie



Il metodo più semplice è aprire VBA in Excel e guardare i codici esadecimali che risultano in base ai colori scelti.

In allegato immagine VBA aperto in Excel con in evidenza i colori rosso, verde e blu di un form


Grazie Carlo. In verità speravo che in giro ci fosse della documentazione sull'argomento da poter consultare. Buon lavoro.

Ultima modifica effettuata da alip1 il 14/06/2024 alle 19:54
PM Quote
Avatar
Carlo (Member)
Guru^2


Messaggi: 1420
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 20:30
Venerdì, 14/06/2024
Testo quotato

Postato originariamente da alip1:

Solo una domanda di curiosita': dove è possibile apprendere che il formato in bit dei colori in vba ha quello da te correttamente indicato 8b8g8r? Grazie



La risposta che ti ho dato a questa domanda, intendeva mostrarti che spesso le risposte sono sotto al nostro naso, l'IDE di VBA e VisualStudio sono degli insegnanti instancabili, basta leggere/notare/comprendere i feedback e gli aiuti che danno.

Testo quotato

Postato originariamente da alip1:
Grazie Carlo. In verità speravo che in giro ci fosse della documentazione sull'argomento da poter consultare. Buon lavoro.



La risposta a questa domanda è qui:
https://learn.microsoft.com/en-us/office/vba/language/refer ...

La documentazione è completa e sterminata :rofl:

Se ti piace manipolare le stringhe, qui di seguito un esempio che converte il valore decimale di un colore VBA in una stringa esadecimale e poi con .Substrig divide le varie componenti:
Codice sorgente - presumibilmente VB.NET

  1. Public Function Convert24bitColor(VBAdecColor As Integer) As Color
  2.     Dim r As Integer
  3.     Dim g As Integer
  4.     Dim b As Integer
  5.     Dim col As String
  6.  
  7.     'trasforma il colore in una stringa esadecimale
  8.     col = Hex(VBAdecColor)
  9.  
  10.     'aggiunge gli zeri mancanti a sinistra in modo che i numeri piccoli abbiano almeno 6 caratteri
  11.     col = col.PadLeft(6, "0")
  12.  
  13.     'blu, primi due caratteri
  14.     b = CInt("&h" & col.Substring(0, 2))
  15.  
  16.     'verde, secondi due caratteri
  17.     g = CInt("&h" & col.Substring(2, 2))
  18.  
  19.     'rosso, ultimi due caratteri
  20.     r = CInt("&h" & col.Substring(4, 2))
  21.  
  22.     Return Color.FromArgb(r, g, b)
  23. End Function



Naturalmente rispetto al metodo con lo scorrimento dei bit è meno efficiente:k:

Ultima modifica effettuata da Carlo il 14/06/2024 alle 20:57


in programmazione tutto è permesso
PM Quote
Avatar
alip1 (Normal User)
Pro


Messaggi: 145
Iscritto: 12/08/2019

Segnala al moderatore
Postato alle 21:01
Venerdì, 14/06/2024
Testo quotato

Postato originariamente da Carlo:

Testo quotato

Postato originariamente da alip1:

Solo una domanda di curiosita': dove è possibile apprendere che il formato in bit dei colori in vba ha quello da te correttamente indicato 8b8g8r? Grazie



La risposta che ti ho dato a questa domanda, intendeva mostrarti che spesso le risposte sono sotto al nostro naso, l'IDE di VBA e VisualStudio sono degli insegnanti instancabili, basta leggere/notare/comprendere i feedback e gli aiuti che danno.

Testo quotato

Postato originariamente da alip1:
Grazie Carlo. In verità speravo che in giro ci fosse della documentazione sull'argomento da poter consultare. Buon lavoro.



La risposta a questa domanda è qui:
https://learn.microsoft.com/en-us/office/vba/language/refer ...

La documentazione è completa e sterminata :rofl:

Se ti piace manipolare le stringhe, qui di seguito un esempio che converte il valore decimale di un colore VBA in una stringa esadecimale e poi con .Substrig divide le varie componenti:
Codice sorgente - presumibilmente VB.NET

  1. Public Function Convert24bitColor(VBAdecColor As Integer) As Color
  2.     Dim r As Integer
  3.     Dim g As Integer
  4.     Dim b As Integer
  5.     Dim col As String
  6.  
  7.     'trasforma il colore in una stringa esadecimale
  8.     col = Hex(VBAdecColor)
  9.  
  10.     'aggiunge gli zeri mancanti a sinistra in modo che i numeri piccoli abbiano almeno 6 caratteri
  11.     col = col.PadLeft(6, "0")
  12.  
  13.     'blu, primi due caratteri
  14.     b = CInt("&h" & col.Substring(0, 2))
  15.  
  16.     'verde, secondi due caratteri
  17.     g = CInt("&h" & col.Substring(2, 2))
  18.  
  19.     'rosso, ultimi due caratteri
  20.     r = CInt("&h" & col.Substring(4, 2))
  21.  
  22.     Return Color.FromArgb(r, g, b)
  23. End Function



Naturalmente rispetto al metodo con lo scorrimento dei bit è meno efficiente:k:


Grazie

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo