2012-10-15 13 views
10

Sto creando una forma Delphi e desidera assegnare il colore di sfondo ad esso sul tempo di esecuzione. Questo codice:Come posso convertire una stringa in un valore TColor?

Form1.Color := clSkyBlue; 

funziona bene. Il mio problema è che ho memorizzato il nome del colore in una tabella come una stringa. Così, quando vado a prendere il nome del colore dal tavolo e assegnarlo a Form1.Color, la dichiarazione di cui sopra diventa:

var 
    ColorName: string; 
.... 
Form1.Color := ColorName; 

e questo si traduce in un errore di compilazione.

Come posso convertire una stringa in un valore TColor?

risposta

20

È possibile utilizzare le seguenti funzioni di conversione (entrambe le opere con costanti di colore):

  • l'uso StringToColor funzione di tradurre una rappresentazione di stringa di un colore per TColor valore
  • l'uso ColorToString funzione quando è necessario di tradurre TColor valore ad una rappresentazione di stringa

Nel tuo caso è necessario utilizzare la funzione StringToColor:

Form1.Color := StringToColor('clSkyBlue'); 
+1

Ohh wow !!! grazie Tlama. Non stavo conoscendo questa parola chiave. Inoltre, Ho cercato su google 'come convertire tstring in TColor in Delphi XE2', ma non ho trovato nulla utile. Grazie ancora!! –

+1

@ user1556433 Non c'è 'TString'. Intendi stringa. –

+1

Non avete trovato nulla perché non v'è alcun tipo 'TString' built-in in Delphi. È solo 'stringa'. – TLama

Problemi correlati