Passar parametros pelo ColorDialog para o banco de dados
Boa noite a todos.
Gostaria de uma ajuda, tenho um form que os usuarios personalizam sua aplicação, poderia se trabalhar em 2 formas:
- Gravando as configurações em ini/regedit (porem as pessoas não sentam no mesmo computador o que leva a ter que configurar as cores novamente).
- Gravar no banco de dados, foi essa a minha escolha
Então tenho 3 duvidas
1- Como eu passo os parametros do componente ColorDialog, eu fiz varios teste e sem sucesso, o ultimo fiz assim.
- Query.FieldByName(´CORTEXTO´).AsFloat := ColorDialog.Color;
2- Como eu crio no banco de dados, integer, string, float?
3- Essa ´personalização´ é somente em uma tela do sistema, como eu poderia fazer para quando o usuario entrar nessa tela alterar as cores (ler no banco de dados).
Obrigado a todos.
Gostaria de uma ajuda, tenho um form que os usuarios personalizam sua aplicação, poderia se trabalhar em 2 formas:
- Gravando as configurações em ini/regedit (porem as pessoas não sentam no mesmo computador o que leva a ter que configurar as cores novamente).
- Gravar no banco de dados, foi essa a minha escolha
Então tenho 3 duvidas
1- Como eu passo os parametros do componente ColorDialog, eu fiz varios teste e sem sucesso, o ultimo fiz assim.
- Query.FieldByName(´CORTEXTO´).AsFloat := ColorDialog.Color;
2- Como eu crio no banco de dados, integer, string, float?
3- Essa ´personalização´ é somente em uma tela do sistema, como eu poderia fazer para quando o usuario entrar nessa tela alterar as cores (ler no banco de dados).
Obrigado a todos.
Corcos
Curtidas 0
Respostas
Micheus
06/12/2006
2- Como eu crio no banco de dados, integer, string, float?
[b:c2e0e3e548]Corcos[/b:c2e0e3e548], Que banco vc utiliza? Se vc utiliza alguma ferramenta para manipular a estrutura das tabelas, ela não oferece estas opções?
3- Essa ´personalização´ é somente em uma tela do sistema, como eu poderia fazer para quando o usuario entrar nessa tela alterar as cores (ler no banco de dados).
Bastaria vc no OnCreate do form, ler o registro no banco de dados e atribuir aos itens que vc esta personalizando a cor, ou seja, aqueles que vc gravou.Mas se é apenas um form, e se vc não for associar ao usuário esta personalização, não seria melhor utilizar a gravação no arquivo INI, que ficaria guardado na máquina onde o programa será executado?
GOSTEI 0
Corcos
06/12/2006
Micheus é assim:
Eu tenho varios usuarios acessando computadores diferentes em horarios diferentes, então não tem como guardar no INI pois um dia a pessoa senta no computador 1 e outro dia no computador 2, 3 e etc... então achei melhor gravar no banco de dados mesmo.
Eu esqueci de informar uso o Interbase, e eu crio as tabelas todas não mao mesmo, vc conhece alguma ferramenta boa para fazer a organização de tabelas e gerar scripts? Eu já testei algumas mas nenhuma boa e pratica.
Em relação no oncreate a melhor forma é dando um select na tabela procurando o ID do funcionario logado? Tenho medo disso ficar pesado d+
Obrigado
Eu tenho varios usuarios acessando computadores diferentes em horarios diferentes, então não tem como guardar no INI pois um dia a pessoa senta no computador 1 e outro dia no computador 2, 3 e etc... então achei melhor gravar no banco de dados mesmo.
Eu esqueci de informar uso o Interbase, e eu crio as tabelas todas não mao mesmo, vc conhece alguma ferramenta boa para fazer a organização de tabelas e gerar scripts? Eu já testei algumas mas nenhuma boa e pratica.
Em relação no oncreate a melhor forma é dando um select na tabela procurando o ID do funcionario logado? Tenho medo disso ficar pesado d+
Obrigado
GOSTEI 0
Micheus
06/12/2006
Eu esqueci de informar uso o Interbase, e eu crio as tabelas todas não mao mesmo, vc conhece alguma ferramenta boa para fazer a organização de tabelas e gerar scripts? Eu já testei algumas mas nenhuma boa e pratica.
Bom, eu trabalho com FireBird e utilizo o IBExpert (também pode ser utilizado com o IB) e gosto bastante dele neste aspécto.Em relação no oncreate a melhor forma é dando um select na tabela procurando o ID do funcionario logado? Tenho medo disso ficar pesado d+
Então, informando o ID do usuário vc vai estar fazendo o select de apenas uma linha, já que vc disse que guarda a informação de apenas um formulário. Não tem como ser mais ´leve´. Talvez, o que vc possa fazer (caso este form seja criado e destruido várias vezes) é carregar esta informação para uma variável global após o login do usuário e então utilizá-la posteriormente.[]s
GOSTEI 0
Corcos
06/12/2006
Valeu pelas respostas Micheus
Em relação a essas perguntas
Em relação a essas perguntas
1- Como eu passo os parametros do componente ColorDialog, eu fiz varios teste e sem sucesso, o ultimo fiz assim.
- Query.FieldByName(´CORTEXTO´).AsFloat := ColorDialog.Color;
2- Como eu crio no banco de dados, integer, string, float?
GOSTEI 0
Emerson Nascimento
06/12/2006
crie o campo como varchar(10)
aí, na sua aplicação, você faz:
Query.FieldByName(´CORTEXTO´).AsString := ColorToString(form.color);
e para ´recuperar´ a cor:
form.color := StringToColor(Query.FieldByName(´CORTEXTO´).AsString);
lembrando que as funções ColorToString() e StringToColor() estão na unit Graphics.
aí, na sua aplicação, você faz:
Query.FieldByName(´CORTEXTO´).AsString := ColorToString(form.color);
e para ´recuperar´ a cor:
form.color := StringToColor(Query.FieldByName(´CORTEXTO´).AsString);
lembrando que as funções ColorToString() e StringToColor() estão na unit Graphics.
GOSTEI 0
Micheus
06/12/2006
[quote:bc89fe2df7]1- Como eu passo os parametros do componente ColorDialog, eu fiz varios teste e sem sucesso, o ultimo fiz assim.
- Query.FieldByName(´CORTEXTO´).AsFloat := ColorDialog.Color;
[/quote:bc89fe2df7]Se o campo em sua tabela for do tipo inteiro (seria o mais apropridado) vc deveria utilizar [i:bc89fe2df7]AsInteger[/i:bc89fe2df7] no lugar de [i:bc89fe2df7]AsFloat[/i:bc89fe2df7].[quote:bc89fe2df7]2- Como eu crio no banco de dados, integer, string, float?
[/quote:bc89fe2df7]Numa tabela que já existe, vc utiliza a instrução SQL ALTER. Ex.
- Para eliminar um campo:
ALTER TABLE <NOME_TABELA> DROP <NOME_CAMPO>
- Para incluir novo campo:
ALTER TABLE <NOME_TABELA> ADD <NOME_CAMPO> <TIPO_CAMPO>
Tipo Campo: INTEGER, VARCHAR([i:bc89fe2df7]n[/i:bc89fe2df7]), FLOAT, ...
- Para alterar o tipo de um campo já existente:
ALTER TABLE <NOME_TABELA> ALTER <NOME_CAMPO> TYPE <NOVO_TIPO_CAMPO>
Tem umas dicas neste [url=http://www.tecnobyte.com.br/dica9.html]link[/url]
GOSTEI 0
Corcos
06/12/2006
Valeu emerson deu certinho aqui!!!
Fiz assim e funcionou direitinho
Fiz assim e funcionou direitinho
for I := 0 to ComponentCount - 1 do
if (Components [I] is TSpeedButton) then
(Components [I] as TSpeedButton).Font.Color := StringToColor(frmPersonalizar.QryPersonaliza.FieldByName(´CORBOTAO´).AsString);
GOSTEI 0