Tedit receber valor do Dbedit

05/02/2013

2

Olá amigos !

Criei um sorce para fazer a conferência de dados expostos em dois panels em edits.
Uso delphi 7, bando de dados firebird, componentes sqldataset, DatasetProvider, clientdataset e datasource
Vejam a imagem
[url][/url][URL=http://imageshack.us/photo/my-images/805/semttulohdk.jpg/][IMG]http://img805.imageshack.us/img805/1715/semttulohdk.jpg[/IMG][/URL]

Uploaded with [URL=http://imageshack.us]ImageShack.us[/URL]

No Panel Notas são os edits
No Panel resultado são Dbedits
No Panel destacado em preto faz a contagem e a soma de quantos são iguais no panel Resultado e panel notas.
Abaixo o código utilizado:
procedure TForm1.FormCreate(Sender: TObject);
//==============================================================================
// Executar ao Iniciar
//==============================================================================
begin
resultado := TStringList.Create;
notas := TStringList.Create;
end;

procedure TForm1.LimparEdit;
//==============================================================================
// Limpa cores de todos os Tedits menos o da pontuação.
//==============================================================================
Var
i : Integer;
begin
for i := 0 to ComponentCount -1 do
if (Components[i] is TEdit) and (TEdit(Components[i]) <> edtpontuacao) then
begin
TEdit(Components[i]).Color := clWindow;
end;
end;


procedure TForm1.btn1Click(Sender: TObject);
//==============================================================================
// Executa ao clicar no botão "CHECAR"
//==============================================================================
var
i, k, eq: integer;
valor: integer;
begin
// ############# Limpa tudo
valor := 0;
resultado.Clear;
notas.Clear;
LimparEdit;

// ############# Pega todos os Edits do Painel 01
for i := 0 to pnl1.ControlCount -1 do
begin
if pnl1.Controls[i] is TEdit then
resultado.Add(TEdit(pnl1.Controls[i]).Text);
end;

// ############# Pega todos os Edits do Painel 02
for i := 0 to pnl2.ControlCount -1 do
begin
if pnl2.Controls[i] is TEdit then
notas.Add(TEdit(pnl2.Controls[i]).Text);
end;

// ############# Verifica quais são iguais
for I := 0 to resultado.Count -1 do
for K := 0 to notas.Count -1 do
if (resultado[I] = notas[K]) and (resultado[I] <> '') then
begin
Inc(valor); // Soma Pontos na varável Valor.

// Destaca componentes com valores iguais utilizando cores.
for eq := 0 to Form1.ComponentCount -1 do
begin
if (Form1.Components[eq] is TEdit)
and (TEdit(Form1.Components[eq]).Text = notas[K])
and (TEdit(Form1.Components[eq]) <> edtpontuacao) then
TEdit(Form1.Components[eq]).Color := clSkyBlue;
end;
end;

// ############# Exibe Pontuação
edtpontuacao.Text := 'Pontuação: ' + IntToStr(valor);
end;

end.

Desde já agradeço !
Responder

Posts

05/02/2013

Lao

Não ficou claro oque preciso.

Nos edits resultado, eles precisam receber valor de uns dbedits, pois somente é possível setar os fieds nos Dbedits.
Estou certo ?
Responder

07/02/2013

Lao

Não ficou claro oque preciso.

Nos edits resultado, eles precisam receber valor de uns dbedits, pois somente é possível setar os fieds nos Dbedits.
Estou certo ?



tópico resolvido.

Responder

02/03/2013

José

Nesse caso, estou encerrando o tópico.
Responder