quarta-feira, 15 de setembro de 2010
quarta-feira, 12 de maio de 2010
Desativando todos Checkbox de uam so vez
E ai pessoal sempre aprendendo
Precisava desligar os TEVcheckbox de meu formulario qdo eu clicasse em um apagasse todos ao mesmo tempo
antes havia feito assim.
em cada componente no on clique no evento coloquei
EvCheckBox1.Checked := False;
EvCheckBox2.Checked := False;
EvCheckBox3.Checked := False;
EvCheckBox4.Checked := False;
EvCheckBox5.Checked := False;
EvCheckBox6.Checked := False;
EvCheckBox7.Checked := False;
EvCheckBox8.Checked := False;
EvCheckBox9.Checked := False;
EvCheckBox10.Checked := False;
e no
EvCheckBox10.Checked que eu precisava que ficasse checado coloquei true := true;
Mas caramba 10 linhas em cada um serao 100 linhas
Resolvi diminur as linhas
Criei a proceure
procedure TF_lancamentos_abre.Desliga_chk ;
begin
EvCheckBox1.Checked := False;
EvCheckBox2.Checked := False;
EvCheckBox3.Checked := False;
EvCheckBox4.Checked := False;
EvCheckBox5.Checked := False;
EvCheckBox6.Checked := False;
EvCheckBox7.Checked := False;
EvCheckBox8.Checked := False;
EvCheckBox9.Checked := False;
EvCheckBox10.Checked := False;
end;
e no clique do componente deixava assim
Desliga_chk;
EvCheckBox10.Checked := True;
ligando assim o que eu precisava diminui de 100 linhas para apenas 10
bom ai veio a pergunta poderia ficar melhor ainda???
poderia sim.. nesta procedure abaixo criada.............
procedure TF_lancamentos_abre.Desliga_chk ;
begin
EvCheckBox1.Checked := False;
EvCheckBox2.Checked := False;
EvCheckBox3.Checked := False;
EvCheckBox4.Checked := False;
EvCheckBox5.Checked := False;
EvCheckBox6.Checked := False;
EvCheckBox7.Checked := False;
EvCheckBox8.Checked := False;
EvCheckBox9.Checked := False;
EvCheckBox10.Checked := False;
end;
deixar ela ficar assim
procedure TF_lancamentos_abre.Desliga_chk ;
var i : Integer;
begin
for I := 0 to ComponentCount - 1 do
begin
if (Components[I] is TEvCheckBox ) then
TEvCheckBox(Components[I]).Checked := False;
end;
end;
saindo todo este texto abaixo
EvCheckBox1.Checked := False;
EvCheckBox2.Checked := False;
EvCheckBox3.Checked := False;
EvCheckBox4.Checked := False;
EvCheckBox5.Checked := False;
EvCheckBox6.Checked := False;
EvCheckBox7.Checked := False;
EvCheckBox8.Checked := False;
EvCheckBox9.Checked := False;
EvCheckBox10.Checked := False;
e no on clique do componte
procedure TF_lancamentos_abre.EvCheckBox10Click(Sender: TObject);
begin
Desliga_chk; //procedure criada
EvCheckBox10.Checked := True; // e o componente que quero checado
end;
creditos Professor Marco
Precisava desligar os TEVcheckbox de meu formulario qdo eu clicasse em um apagasse todos ao mesmo tempo
antes havia feito assim.
em cada componente no on clique no evento coloquei
EvCheckBox1.Checked := False;
EvCheckBox2.Checked := False;
EvCheckBox3.Checked := False;
EvCheckBox4.Checked := False;
EvCheckBox5.Checked := False;
EvCheckBox6.Checked := False;
EvCheckBox7.Checked := False;
EvCheckBox8.Checked := False;
EvCheckBox9.Checked := False;
EvCheckBox10.Checked := False;
e no
EvCheckBox10.Checked que eu precisava que ficasse checado coloquei true := true;
Mas caramba 10 linhas em cada um serao 100 linhas
Resolvi diminur as linhas
Criei a proceure
procedure TF_lancamentos_abre.Desliga_chk ;
begin
EvCheckBox1.Checked := False;
EvCheckBox2.Checked := False;
EvCheckBox3.Checked := False;
EvCheckBox4.Checked := False;
EvCheckBox5.Checked := False;
EvCheckBox6.Checked := False;
EvCheckBox7.Checked := False;
EvCheckBox8.Checked := False;
EvCheckBox9.Checked := False;
EvCheckBox10.Checked := False;
end;
e no clique do componente deixava assim
Desliga_chk;
EvCheckBox10.Checked := True;
ligando assim o que eu precisava diminui de 100 linhas para apenas 10
bom ai veio a pergunta poderia ficar melhor ainda???
poderia sim.. nesta procedure abaixo criada.............
procedure TF_lancamentos_abre.Desliga_chk ;
begin
EvCheckBox1.Checked := False;
EvCheckBox2.Checked := False;
EvCheckBox3.Checked := False;
EvCheckBox4.Checked := False;
EvCheckBox5.Checked := False;
EvCheckBox6.Checked := False;
EvCheckBox7.Checked := False;
EvCheckBox8.Checked := False;
EvCheckBox9.Checked := False;
EvCheckBox10.Checked := False;
end;
deixar ela ficar assim
procedure TF_lancamentos_abre.Desliga_chk ;
var i : Integer;
begin
for I := 0 to ComponentCount - 1 do
begin
if (Components[I] is TEvCheckBox ) then
TEvCheckBox(Components[I]).Checked := False;
end;
end;
saindo todo este texto abaixo
EvCheckBox1.Checked := False;
EvCheckBox2.Checked := False;
EvCheckBox3.Checked := False;
EvCheckBox4.Checked := False;
EvCheckBox5.Checked := False;
EvCheckBox6.Checked := False;
EvCheckBox7.Checked := False;
EvCheckBox8.Checked := False;
EvCheckBox9.Checked := False;
EvCheckBox10.Checked := False;
e no on clique do componte
procedure TF_lancamentos_abre.EvCheckBox10Click(Sender: TObject);
begin
Desliga_chk; //procedure criada
EvCheckBox10.Checked := True; // e o componente que quero checado
end;
creditos Professor Marco
terça-feira, 11 de maio de 2010
Destacar uma linha em um Dbgrid com uma cor conforme um certo campo
procedure TF_Cad_pcontas.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if F_Dados.Q_cad_pcontasSintetica.Value='S' then
//aqui escolhi que se no campo Sintetica da Query Q_cad_pcontas estiver o valor S sera
destacado em vermelho
begin
DBGrid1.Canvas.Brush.Color:=clMenu; // indica o fundo escolhi o branco
DBGrid1.Canvas.Font.Color:=clred; // indica a cor da esrcrita
end;
if F_Dados.Q_cad_pcontasAnalitica.Value='A' then
begin
DBGrid1.Canvas.Brush.Color:=clMenu; // indica o fundo escolhi o branco
DBGrid1.Canvas.Font.Color:=clblue; // indica a cor da esrcrita
end;
DBGrid1.DefaultDrawDataCell(Rect, Column.field, State);
end;
eh isso ai galera
begin
if F_Dados.Q_cad_pcontasSintetica.Value='S' then
//aqui escolhi que se no campo Sintetica da Query Q_cad_pcontas estiver o valor S sera
destacado em vermelho
begin
DBGrid1.Canvas.Brush.Color:=clMenu; // indica o fundo escolhi o branco
DBGrid1.Canvas.Font.Color:=clred; // indica a cor da esrcrita
end;
if F_Dados.Q_cad_pcontasAnalitica.Value='A' then
begin
DBGrid1.Canvas.Brush.Color:=clMenu; // indica o fundo escolhi o branco
DBGrid1.Canvas.Font.Color:=clblue; // indica a cor da esrcrita
end;
DBGrid1.DefaultDrawDataCell(Rect, Column.field, State);
end;
eh isso ai galera
Uptade sql apos criar campo
Ápos inserir um campo em uma tabela, precisava inserir o codigo da empresa em um plano de conta total ao pesquizar sobre o comando achei qeu fosse o insert( a gente erra pra fazer o certo ne) descobrir ser o uptade
usei o comando
update cad_pcontas set cod_empresa = 2
onde cad_pcontas eh minha tabela de Cadastro de contas
set - o comando para setar no campo escolhido no caso cod_empresa e a empresa = 2 (previamente cadastrada no cadastro de empresa)
eh isso galera
usei o comando
update cad_pcontas set cod_empresa = 2
onde cad_pcontas eh minha tabela de Cadastro de contas
set - o comando para setar no campo escolhido no caso cod_empresa e a empresa = 2 (previamente cadastrada no cadastro de empresa)
eh isso galera
Copiando a Primeira letra de um registro apenas para um Dbedit
procedure TF_lancamentos.DBEdit5KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if key = 13 then
if dbedit8.Text <> '' then
begin
if ZConsulta(F_Dados.Q_cad_pcontas,
'SELECT * FROM cad_pcontas where chamada = '+ dbedit5.Text +
' and origem_pcontas = "Devedora"') = true then
begin
dbedit5.Text := F_Dados.Q_cad_pcontaschamada.AsString;
edit3.Text := F_Dados.Q_cad_pcontasdesc_pcontas.AsString;
dbedit6.Text := copy(F_Dados.Q_cad_pcontasorigem_pcontas.AsString,1,1);
end
else
begin
Application.MessageBox('Conta não existe ou não é Credora!','Aviso do Sistema',mb_ok + mb_iconwarning);
edit3.Clear;
dbedit5.setfocus;
end;
end;
end;
dbedit6.Text := copy(F_Dados.Q_cad_pcontas origem_pcontas.AsString,1,1);
o Comando copy eh o responsavel ele vai copiar o primeiro caractrer do campo origem_pcontas de acordo com a posição que eu mandar 1,1); para o Dbedit 6.text
Creditos Marco
begin
if key = 13 then
if dbedit8.Text <> '' then
begin
if ZConsulta(F_Dados.Q_cad_pcontas,
'SELECT * FROM cad_pcontas where chamada = '+ dbedit5.Text +
' and origem_pcontas = "Devedora"') = true then
begin
dbedit5.Text := F_Dados.Q_cad_pcontaschamada.AsString;
edit3.Text := F_Dados.Q_cad_pcontasdesc_pcontas.AsString;
dbedit6.Text := copy(F_Dados.Q_cad_pcontasorigem_pcontas.AsString,1,1);
end
else
begin
Application.MessageBox('Conta não existe ou não é Credora!','Aviso do Sistema',mb_ok + mb_iconwarning);
edit3.Clear;
dbedit5.setfocus;
end;
end;
end;
dbedit6.Text := copy(F_Dados.Q_cad_pcontas origem_pcontas.AsString,1,1);
o Comando copy eh o responsavel ele vai copiar o primeiro caractrer do campo origem_pcontas de acordo com a posição que eu mandar 1,1); para o Dbedit 6.text
Creditos Marco
quarta-feira, 31 de março de 2010
Edit configurado com Fonte 20 e ai digitar fonte 8 - Erro ou bug
Pessoal estava usando um Edit configurado com Fonte 20 quando digitava-se a fonte caia para um tamanho menor , este causo foi resolvido atravez de um grande amigo programador e nao magico
Professor Paulo Costa
Causa do Problema...........
uso o componente EvFocusColor1
uso o componente EvFocusColor1
que automaticamente mudava a letra qdo o focus estava no componente
em uma de suas propriedades o changeFonte estava True
alias estava bastou colocar False..
em uma de suas propriedades o changeFonte estava True
alias estava bastou colocar False..
meritos ao programador e nao magico Paulo
segunda-feira, 22 de fevereiro de 2010
Erro invalid imput value.use escape key to abandon change
Erro invalid imput value.use escape key to abandon change
Bom pessoal este erro se deu qdo eu estava apagando o numero de um telefone de um cadastro e deixando em branco pois nao existia tal numero, estava testando o cadastro de uma simples agenda de contatos.
Bom pessoal este erro se deu qdo eu estava apagando o numero de um telefone de um cadastro e deixando em branco pois nao existia tal numero, estava testando o cadastro de uma simples agenda de contatos.
Tinha varios campos para numero de telefones como:
- Tel. contato
- Tel_fax
- Tel _celular
- No cadastro com a mascara funcionava perfeito, porem se eu apagar e deixar em branco dava erro de invalid imput value.use escape key to abandon change ou seja use o esc para abandonar ele voltar o que estava digitado antes.
- Mas na hora de cadastrar se deixasse em branco gravava numa boa.
Bom entao o erro so era qdo ja tava digitado e fosse apagado eh que dava o erro.
Bom a solução depois de muito pesquizar testar e tudo veio com nosso amigo Ivan :=
Stay hungry ... stay foolish
- tira o maskedit de todos ( do fieldseditor)
- no ongettext do tfield digite:
Text := Sender.AsString;
Text := FormatMaskText(IfThen(Text <> EmptyStr, '\(99\) 9999-9999;0; '), Text); - No uses e add as units
MaskUtils e StrUtils
*o StrUtils é pra poder usar o IfThen
* e a outra é pra poder usar a FormatMaskText
Creditos da solucionatica := Ivan Cesar
sexta-feira, 12 de fevereiro de 2010
FastReport - Valor Por extenso
No FAST report para que funcione insira no design do formulario um componente onde ira aparecer o valor por extenso .
No meu caso inseri o componente e usei [extenso], nao deixe as chaves, pois meu erro foi esse para digitar no componente so dar dois cliques nele
Apos isso saia do design
Veja no eventos do componente frxReport a opção onGetValue dê dois cliques e escreva o codigo a seguir
if varname = 'extenso' then
value := FormatFloat('R$ #,##0.00 - ',query.Fieldbyname('Vr_recebido').value)+' '+extenso(query.Fieldbyname('Vr_recebido').value);
end;
Explicando ...........
if varname = 'extenso' then esse extenso eh o qeu vc digitou no componente no design do formulario entre chaves []
value := FormatFloat('R$ #,##0.00 - ',tabela.tab_cad_contas_receber.Fieldbyname('Vr_recebido').value)+' aqui ele pega o valor transforma para ficar legal com R$ o valro doa campo da tabela contas a receber o campo vr_recebido
'+formula(tabela.tab_cad_contas_receber.Fieldbyname('Vr_recebido').value); e aqui ele pega a funçao formula e transforma o valor do campo em extenso
No meu caso inseri o componente e usei [extenso], nao deixe as chaves, pois meu erro foi esse para digitar no componente so dar dois cliques nele
Apos isso saia do design
Veja no eventos do componente frxReport a opção onGetValue dê dois cliques e escreva o codigo a seguir
if varname = 'extenso' then
value := FormatFloat('R$ #,##0.00 - ',query.Fieldbyname('Vr_recebido').value)+' '+extenso(query.Fieldbyname('Vr_recebido').value);
end;
Explicando ...........
if varname = 'extenso' then esse extenso eh o qeu vc digitou no componente no design do formulario entre chaves []
value := FormatFloat('R$ #,##0.00 - ',tabela.tab_cad_contas_receber.Fieldbyname('Vr_recebido').value)+' aqui ele pega o valor transforma para ficar legal com R$ o valro doa campo da tabela contas a receber o campo vr_recebido
'+formula(tabela.tab_cad_contas_receber.Fieldbyname('Vr_recebido').value); e aqui ele pega a funçao formula e transforma o valor do campo em extenso
Assinar:
Comentários (Atom)
