Para Ex-Clipeiros
Estou desenvolvendo um Sistema de digitação de fichas.
Em clipper utilizava uma tabela com vetores (arrays), qual a melhor forma para:
a) digitar vários dados na tela?
b) Como ir descendo para a proxima linha?
c) Como gravar os elementos do array em um Dbf?
Socorro!
Emerson.
Em clipper utilizava uma tabela com vetores (arrays), qual a melhor forma para:
a) digitar vários dados na tela?
b) Como ir descendo para a proxima linha?
c) Como gravar os elementos do array em um Dbf?
Socorro!
Emerson.
Emerson_
Curtidas 0
Respostas
Torres Delphi
26/02/2003
Emerson,
Eu tb vim do Clipper, e quase nao utilizo arrays, pois estou programando no Delphi usando muita query, e usando um recurso de tabela temporaria (semelhante aos arrays)
a) digitar vários dados na tela?
Faco um form para a digitacao e no ultimo campo, no evento ´onkeyDown´ testo o uso da tecla enter, se for pressionada, faco a gravacao (post) e logo em seguida insero novo registro em branco (append)
b) Como ir descendo para a proxima linha?
O append faz esse papel
c) Como gravar os elementos do array em um Dbf?
Nunca tentei...
Eu tb vim do Clipper, e quase nao utilizo arrays, pois estou programando no Delphi usando muita query, e usando um recurso de tabela temporaria (semelhante aos arrays)
a) digitar vários dados na tela?
Faco um form para a digitacao e no ultimo campo, no evento ´onkeyDown´ testo o uso da tecla enter, se for pressionada, faco a gravacao (post) e logo em seguida insero novo registro em branco (append)
b) Como ir descendo para a proxima linha?
O append faz esse papel
c) Como gravar os elementos do array em um Dbf?
Nunca tentei...
GOSTEI 0
Anonymous
26/02/2003
Você pode utilizar o array da mesma forma.
Declarando:
var vAuxArray : Array(não põe nada aqui porque esta variavel vai ser uma tabela virtual) of Array[0.. (Número de campos que sua tabela terá)] of String(Você pode usar tudo como string e depois fazer o tratamento específico);
Carregando Array:
Objetos: a Variável acima e uma TQuery;
Query.First;
while not Query.Eof do
begin
SetLength(vAuxArray, Length(vAuxArray) + 1); //Acrecenta um registro na varíavel
vAuxArray[Length(vAuxArray) - 1, 0] := Query.FieldByName(´Campo1´).AsString;
vAuxArray[Length(vAuxArray) - 1, 1] := Query.FieldByName(´Campo2´).AsString;
vAuxArray[Length(vAuxArray) - 1, 2] := Query.FieldByName(´Campo3´).AsString;
vAuxArray[Length(vAuxArray) - 1, 3] := Query.FieldByName(´Campo4´).AsString;
Query.Next;
end;
Lendo do Array:
Objetos: a Variável acima e um TListBox;
for vAuxInt := 0 to Length(vAuxArray) - 1 do
begin
ListBox.Items.Add(vAuxArray[vAuxInt, 1]);
ListBox.Items.Add(vAuxArray[vAuxInt, 2]);
ListBox.Items.Add(vAuxArray[vAuxInt, 3]);
ListBox.Items.Add(vAuxArray[vAuxInt, 4]);
end;
Espero que esta pequena explicação tenha ficado claro....
Declarando:
var vAuxArray : Array(não põe nada aqui porque esta variavel vai ser uma tabela virtual) of Array[0.. (Número de campos que sua tabela terá)] of String(Você pode usar tudo como string e depois fazer o tratamento específico);
Carregando Array:
Objetos: a Variável acima e uma TQuery;
Query.First;
while not Query.Eof do
begin
SetLength(vAuxArray, Length(vAuxArray) + 1); //Acrecenta um registro na varíavel
vAuxArray[Length(vAuxArray) - 1, 0] := Query.FieldByName(´Campo1´).AsString;
vAuxArray[Length(vAuxArray) - 1, 1] := Query.FieldByName(´Campo2´).AsString;
vAuxArray[Length(vAuxArray) - 1, 2] := Query.FieldByName(´Campo3´).AsString;
vAuxArray[Length(vAuxArray) - 1, 3] := Query.FieldByName(´Campo4´).AsString;
Query.Next;
end;
Lendo do Array:
Objetos: a Variável acima e um TListBox;
for vAuxInt := 0 to Length(vAuxArray) - 1 do
begin
ListBox.Items.Add(vAuxArray[vAuxInt, 1]);
ListBox.Items.Add(vAuxArray[vAuxInt, 2]);
ListBox.Items.Add(vAuxArray[vAuxInt, 3]);
ListBox.Items.Add(vAuxArray[vAuxInt, 4]);
end;
Espero que esta pequena explicação tenha ficado claro....
GOSTEI 0