GARANTIR DESCONTO

Fórum Como gravar o Font.Style em um arquivo .ini ?? #251727

23/09/2004

0

estou mudando a fonte de determinado label usando o fontdialog
e quero gravar todas as informações dele em um arquivo .ini para sempre usar a fonte selecionada.

consigui gravar nome cor e tamanho da fonte. Mas não estou consiguindo gravar o Style =/

FontDialog.Execute; ArqIni:=TiniFile.Create(´Fonte.ini´); ArqIni.WriteString(´NOME´,´FONTE´,FontDialog.Font.Name); ArqIni.WriteInteger(´COR´,´FONTE´,FontDialog.Font.Color); ArqIni.Writeinteger(´TAMANHO´,´FONTE´,FontDialog.Font.Size); ArqIni.free;


SÓ PRECISO DO STYLE =(! ALGUEM PODE ME AJUDAR?? POR FAVOR!


Jaspion

Jaspion

Responder

Posts

23/09/2004

Bon Jovi

De forma direta como parece questionar, via INI acho nao dá. Via Registry até dá pra fazer algo desse tipo, gravando em formato binario o estado de um objeto do tipo TComponent.

O jeito é vc guardar de forma diferente no INI e fazer ifs no Delphi pra setar a propriedade.

Tipo..

[FONTE]
Negrito=1
Italico=0
etc...


Responder

Gostei + 0

24/09/2004

Jaspion

Pensei nisso tbm. =/
F*(hein?!?!) que tenho que fazer tdas as variações nos ifs
se é negrito e italico, ou soh negrito, ou soh italico, ou negrito italico e sublinhado, ou negrito e sublinhado.... e assim vai

ou tem um jeito mais facil de faze?!


Responder

Gostei + 0

24/09/2004

Essistemas

Não se é o que vc quer + use o formStorage
do rxlib !


Responder

Gostei + 0

24/09/2004

Bon Jovi

essistemas tá por dentro, realmente esse componente já faz isso. Ele deve usar RTTI pra setar as propriedades.


Responder

Gostei + 0

24/09/2004

Mago M3rl1n

Voce poderia armazenar o estado do estilo numa string com 4 posicoes. A primeira posicao seria para fsBold, a segunda para fsItalic, a terceira para fsUnderline e a quarta para fsStrikeOut. Os valores seriam 0 ou 1 para desligado ou ligado.

Para saber se o estilo esta ligado, faz um if.

if fsBold in componente.font.style then
seta valor como 1
else
seta valor como 0;


Responder

Gostei + 0

24/09/2004

Marcelo Saviski

vc poderia fazer assim:

Ini.WriteBool(Section, ´Negrito´, fsBold in FontStyle);
Ini.WriteBool(Section, ´Itálico´, fsItalic in FontStyle);
Ini.WriteBool(Section, ´Subrinhado´, fsunderline in FontStyle);
Ini.WriteBool(Section, ´Riscado´, fsStrckout in FontStyle);


e depois p/ ler:

FontStyle := [];
if Ini.ReadBool(Section, ´Negrito´, False) then 
  FontStyle := FontStyle + [fsBold];
if Ini.ReadBool(Section, ´Itálico´, False) then 
  FontStyle := FontStyle + [fsItalic];
if Ini.ReadBool(Section, ´Sublinhado´, False) then 
  FontStyle := FontStyle + [fsUnderline];
if Ini.ReadBool(Section, ´Riscado´, False) then 
  FontStyle := FontStyle + [fsStrckout];


ou usar o formStorage como citado acima que é mais prático se vc quiser salvar muitas propriedades.


Responder

Gostei + 0

25/09/2004

Jaspion

Marcelo Saviski
Tentei fazer desse jeito. mas da problema hora que mudo o estilo por 2 vezes,

Mago M3rl1n
Tbm tinha pensado nisso... mas nao consigo definir o font.style usando string. da erro =/

e esse componente formstorage do rxlib não conheço.
alguem pode me explicar melhor???


Responder

Gostei + 0

25/09/2004

Bon Jovi

Pode usar do pacote RxLib (descontinuado) ou Jedi VCL (http://jvcl.sourceforge.net/).

Exemplo de teste:

1 - Coloque o TJvFormStorage no form
2 - Na propriedade IniFileName coloque o caminho e nome do arquivo INI
3 - Coloque um TEdit no form
4 - Dê duplo-clique no JvFormStorage1
5 - Na janela q se abre, desmarque FormPosition e WindowState se nao quiser armazenar os mesmos no INI
6 - Selecione o Edit1 na lista Components
7 - Selecione Font na lista Properties
8 - Clique em Add
9 - Clique em OK e pronto.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar