Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde galera,
Estou começando a trabalhar com Delphi agora e já tô com um probleminha:
Estou fazendo um aplicativo que insere dados em uma TStringGrid para simples visualização (por enquanto). acontece que não sei como adicionar os dados à tabela.
Pretendo fazer isso em um looping adicionando os dados um a um, a tabela tem duas colunas.
Aproveitando, se puderem posta um exemplo de código bem comentado seria ótimo pois nunca trabalhei com Delphi.
Se alguém puder me indicar algum site com a documentação dos métodos e atributos das classes do Delphi seria ótimo.
Valeu!!!
Valeu meu caro, mas agora o que tá pegando é que tá dando a seguinte mensagem:
Exception EClassNotFound in module Project1.exe at 0001329E Class TStringGrid not found.
Parece que ele não achou a classe TStringGrid, mas foi o próprio Delphi que colocou essa classe ao montar o formulario...
Olha o código:
unit ContaArquivosTelecobranca;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
Executar: TButton;
private
{ Private declarations }
public
{ Public declarations }
procedure ExecutarClick(Sender: TObject);
procedure ListaArquivos();
end;
var
Form1: TForm1;
arquivo: TextFile;
procArquivo: TSearchRec;
tabela: TStringGrid;
implementation
{$R *.dfm}
Procedure TForm1.ListaArquivos();
var
i: Integer;
linha, nomeArq: String;
cont: Integer;
begin
try
i := FindFirst('Z:\Telecobranca\*.txt', 0, procArquivo);
while i=0 do
begin
//conta linhas do arquivo
nomeArq:=String(procArquivo.Name);
AssignFile(arquivo, nomeArq);
Reset(arquivo);
cont:=0;
while Eof(arquivo) do
begin
Readln(arquivo, linha);
cont := cont + 1;
end;
end;
//escreve na tabela
with tabela do
begin
Row := RowCount-1;
RowCount := RowCount + 1;
Cells[0, Row] := nomeArq;
Cells[1, Row] := IntToStr(cont);
end;
except
end;
end;
procedure TForm1.ExecutarClick(Sender: TObject);
begin
ListaArquivos();
end;
end.
Porque tirou a declaração do stringgrid do type do form??? Na sua unit está assim:
type
TForm1 = class(TForm)
Executar: TButton;
private
{ Private declarations }
public
{ Public declarations }
procedure ExecutarClick(Sender: TObject);
procedure ListaArquivos();
end;
var
Form1: TForm1;
arquivo: TextFile;
procArquivo: TSearchRec;
tabela: TStringGrid;type
TForm1 = class(TForm)
tabela: TStringGrid;
Executar: TButton;
private
{ Private declarations }
public
{ Public declarations }
procedure ExecutarClick(Sender: TObject);
procedure ListaArquivos();
end;
var
Form1: TForm1;
arquivo: TextFile;
procArquivo: TSearchRec;[]'s
É... quando acho que tava tudo certo deu outro erro.
Dessa vez um EReadError, com a mensagem "Executar.OnClick: Invlid Property value"
a unica coisa que está no Executar.Onlick é "ExecutarClick" que é o nome do procedimento que ele chama, não vejo nada de errado nisso, tem algo errado?
Poste o código completo para analise.
[]'s
Há várias formas... você pode criar uma função para jogar os itens no grid como esta por exemplo:
procedure TForm1.AdicionaItemGrid(sValorColuna1, sValorColuna2 : String);
begin
with StringGrid do
begin
Ai no seu código só precisaria chamar a função jogando os valores das duas colunas para a mesma para o StringGrid ser preenchido.
Quanto a essa documentação que fala, não tem documentação melhor que o próprio help do delphi... tem tudo lá, só saber pesquisar.
[]'s