Amigos como poderei copiar e colar outra vez em um dbgrid os valores no mesmo Dbgrig depois de enviar os dados para o Clipbrd, já tentei varias formas não esta dando certo. (Adiciono na tabela mestre um registo novo e quero adicionar os campos do dbgrid enviados para Clipbrd) . Obrigado
Pergunta
rebotea
Boas
Amigos como poderei copiar e colar outra vez em um dbgrid os valores no mesmo Dbgrig depois de enviar os dados para o Clipbrd, já tentei varias formas não esta dando certo. (Adiciono na tabela mestre um registo novo e quero adicionar os campos do dbgrid enviados para Clipbrd) . Obrigado
var
Linhas: TStringList;
i, posicao: integer;
s: string;
aField : Variant;
j : Integer;
H : Integer;
begin
Linhas := TStringList.Create;
Clipboard.Open;
try
with copiar1 do
begin
DSub_TRelFinal.AutoEdit:= true;
DataSource.DataSet.DisableControls;
Posicao := DataSource.DataSet.RecNo;
DataSource.DataSet.First;
while not DataSource.DataSet.Eof do
begin
s := '';
for i := 0 to Columns.Count - 1 do
begin
if i > 0 then s := s + #9; // Tabulação
s := s + Columns.Items.Field.Text;
end;
Linhas.Add(s);
DataSource.DataSet.Next;
end;
DataSource.DataSet.RecNo := Posicao;
DataSource.DataSet.EnableControls;
end;
Clipboard.SetTextBuf(Pointer(Linhas.Text));
finally
Linhas.Free;
Clipboard.Close;
try
// Create a variant Array
aField := VarArrayCreate(
[0,Sub_TRelFinal.Fieldcount-1],
VarVariant);
// read values into the array
for j := 0 to (Sub_TRelFinal.Fieldcount-1) do
begin
aField[j] := Sub_TRelFinal.fields[j].Value ;
end;
Sub_TRelFinal.Append ;
// Put array values into new the record
for j := 0 to (Sub_TRelFinal.Fieldcount-1) do
begin
//readOnly := SubTRelFinal.Fields.ReadOnly;
// SubTRelFinal.Fields.ReadOnly := false;
Sub_TRelFinal.fields[j].Value := aField[j] ;
// SubTRelFinal.Fields.ReadOnly := readOnly;
end;
except
DSub_TRelFinal.AutoEdit:= true ;
Sub_TRelFinal.FieldByName('localizacao').AsString := copiarlocal.text;
Sub_TRelFinal.FieldByName('Obra').AsString := copiarobra.text;
Sub_TRelFinal.FieldByName('Data_VisitaLocal').AsString := defnidata.Text;
Sub_TRelFinal.FieldByName('Data_Proxima_visita').AsString := '' ;
Sub_TRelFinal.FieldByName('data_relatorio').AsString := '';
Sub_TRelFinal.post;
Sub_TRelFinal.edit;
end;
end;
Link para o comentário
Compartilhar em outros sites
12 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.