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












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

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

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