estou montando um programa que le todos os arquivos de uma pasta, insere em um stringGrid e após vai comparar com os arquivos de outra pasta, então ele carrega outra stringGrid para a outra pasta, no momento da comparação se o arquivo não existir na segunda pasta será pintado no primeiro string grid, porem eu não consigo fazer essa colorização da linha ou celula,
Eu peço só que seja bem explicado se eu tenho que gerar um novo botão para inserir o codigo ou inserir alguma unit pois eu não estou habituado com o Delphi e suas notificações, por isso quanto mais detalhado for melhor para meu aprendizado,
O codigo que carrega as string grides:
function GetFileDate(TheFileName: string): string;
begin
f := FileOpen(TheFileName, 0);
try
VLResult := DateTimeToStr(FileDateToDateTime(FileGetDate(f)));
finally
FileClose(f);
end;
end;
procedure TFrmQG.BtnFecharClick(Sender: TObject);
begin
close;
end;
procedure TFrmQG.BtnProcessamentoClick(Sender: TObject);
begin
{if Gauge1.MaxValue = 0 then Gauge1.MaxValue := Table1.RecordCount;
Gauge1.Progress := VGRegistrosLidos;
LLidos.Caption := FormatFloat('###,###,##0',VGRegistrosLidos);
LGravados.Caption := FormatFloat('###,###,##0',VGRegistrosGravados);
LIgnorados.Caption := FormatFloat('###,###,##0',VGRegistrosIgnorados);
LErros.Caption := FormatFloat('###,###,##0',VGRegistrosErros);
if VGRegistrosErros <> 0 then Panel2.Color := clRed;}
end;
procedure TFrmQG.BtnInterromperClick(Sender: TObject);
begin
if MessageDlg('Deseja realmente interromper o processamento?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
VGInterromper := True;
end;
end;
procedure TFrmQG.BtnExecutarClick(Sender: TObject);
begin
{VGRegistrosLidos := 0;
VGRegistrosGravados := 0;
VGRegistrosIgnorados := 0;
VGRegistrosErros := 0;
VGInterromper := false;
if CBTransacao.Checked then DBDecis.StartTransaction;
With Table1 do
begin
First;
While NOT EOF do
begin
inc(VGRegistrosGravados);
inc(VGRegistrosIgnorados);
inc(VGRegistrosErros);
if VGInterromper then break;
if CBStatus.Checked then BtnProcessamento.Click;
if CBContador.Checked then BtnProcessamento.Click;
inc(VGRegistrosLidos);
Next;
Application.ProcessMessages;
end;
end;
if CBTransacao.Checked then DBDecis.Commit;
MessageDlg('Final do Processamento!', mtInformation, [mbOK], 0);}
//----------------StringGrid1-----------------------------------------------//
StringGrid1.Cells[0, 0] := 'Numero';
StringGrid1.Cells[1, 0] := 'Nome';
StringGrid1.Cells[2, 0] := 'Data';
StringGrid1.Cells[3, 0] := 'Hora';
StringGrid1.Cells[4, 0] := 'Status';
//----------------StringGrid2-----------------------------------------------//
StringGrid2.Cells[0, 0] := 'Numero';
StringGrid2.Cells[1, 0] := 'Nome';
StringGrid2.Cells[2, 0] := 'Data';
StringGrid2.Cells[3, 0] := 'Hora';
StringGrid2.Cells[4, 0] := 'Status';
try
//faz a primeira busca
FindFirst('C:\DECIS\Relatorio\*.*',faArchive,Result);
//elimina o diretorio .
if (Result.Name <> '.') then
begin
//adiciona o nome do arquivo no StringGrid
StringGrid1.Cells[1,1] := Result.Name;
StringTest := Result.Name;
RegistroData := FileAge('C:\DECIS\Relatorio\' + Result.Name);
Data := FileDateToDateTime(RegistroData);
VLResult := DateTimeToStr(Data);
StringGrid1.Cells[0,1] := '1';
StringGrid1.Cells[2,1] := VLResult;
StringGrid1.RowCount := 3;
end;
//faz a busca em todo diretório
while FindNext(Result) = 0 do
begin
//elimina o diretorio ..
if (Result.Name <> '..') then
begin
//adiciona no grid
StringGrid1.Cells[0,StringGrid1.RowCount-1] := IntToStr(StringGrid1.RowCount-1);
StringGrid1.Cells[1,StringGrid1.RowCount-1] := Result.Name;
StringTest := Result.Name;
RegistroData := FileAge('C:\DECIS\Relatorio\' + Result.Name);
Data := FileDateToDateTime(RegistroData);
VLResult := DateTimeToStr(Data);
StringGrid1.Cells[2,StringGrid1.RowCount-1] := VLResult;
StringGrid1.RowCount := StringGrid1.RowCount + 1;
end;
end;
finally
FindClose(Result);
end;
try
//faz a primeira busca
FindFirst('C:\DECIS\Relatorio\Original\*.*',faArchive,Result2);
//elimina o diretorio.
if (Result.Name <> '.') then
begin
//adiciona o nome do arquivo no StringGrid
StringGrid2.Cells[1,1] := Result2.Name;
RegistroData := FileAge('C:\DECIS\Relatorio\Original\' + Result2.Name);
Data := FileDateToDateTime(RegistroData);
VLResult := DateTimeToStr(Data);
StringGrid2.Cells[0,1] := '1';
StringGrid2.Cells[2,1] := VLResult;
StringGrid2.RowCount := 3;
end;
//faz a busca em todo diretório
while FindNext(Result2) = 0 do
begin
//elimina o diretorio ..
if (Result.Name <> '..') then
begin
//adiciona no grid
StringGrid2.Cells[0,StringGrid2.RowCount-1] := IntToStr(StringGrid2.RowCount-1);
StringGrid2.Cells[1,StringGrid2.RowCount-1] := Result2.Name;
RegistroData := FileAge('C:\DECIS\Relatorio\Original\' + Result2.Name);
Data := FileDateToDateTime(RegistroData);
VLResult := DateTimeToStr(Data);
StringGrid2.Cells[2,StringGrid2.RowCount-1] := VLResult;
StringGrid2.RowCount := StringGrid2.RowCount + 1;
end;
end;
finally
FindClose(Result2);
end;
If (StringGrid1<>StringGrid2) then
begin
//StringGrid1.Canvas.Font.Color := clGreen;
//StringGrid1.Color := clGreen;
end;
{if (gdselected in gdFixed) then
begin
StringGrid.Canvas.Font.Color:= clGreen;//coloque a cor do colordialog
StringGrid.Canvas.Brush.Color:= clWhite;
end
else
begin
StringGrid.Canvas.Font.Color:= clBlack;
StringGrid.Canvas.Brush.Color:=clWhite;
end;
StringGrid.Canvas.FillRect(Rect);
StringGrid.Canvas.TextOut(Rect.Left+2,Rect.Top+2,StringGrid.Cells[ACol,Arow]);}
end;
Pergunta
Pedro SI
Boa Tarde Pessoal,
Venho aqui pedir socorro!
estou montando um programa que le todos os arquivos de uma pasta, insere em um stringGrid e após vai comparar com os arquivos de outra pasta, então ele carrega outra stringGrid para a outra pasta, no momento da comparação se o arquivo não existir na segunda pasta será pintado no primeiro string grid, porem eu não consigo fazer essa colorização da linha ou celula,
Eu peço só que seja bem explicado se eu tenho que gerar um novo botão para inserir o codigo ou inserir alguma unit pois eu não estou habituado com o Delphi e suas notificações, por isso quanto mais detalhado for melhor para meu aprendizado,
O codigo que carrega as string grides:
Acessem Meu Blog http://ohwmen.wordpress.com
Editado por Pedro SILink para o comentário
Compartilhar em outros sites
13 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.