Ver Mensaje Individual
  #3  
Antiguo 28-06-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Reputación: 10
marcoszorrilla Va por buen camino
No está de más recordar el Truco 176 de TRUCOMANIA:


A veces es interesante poder añadir un registro y que este aparezca ya 'relleno' con los ultimos datos que se teclearon. Este código funciona en
cualquier tabla (espero)


Código Delphi [-]
 
 
procedure TForm1.Button2Click(Sender: TObject);
 
type 
     {Tipos para array dinámico de variants}
     TRecuerda = array[0..0] of variant;
     PRecuerda = ^TRecuerda;
var 
   Recuerda:PRecuerda;
   n:integer;
   Campos:integer;
begin 
   {Reservamos memoria para el array}
   Campos:=Table1.FieldCount;
   GetMem(Recuerda, Campos * SizeOf(variant));
 
   {Vamos al ultimo registro}
   Table1.Last;
   {Recordamos los campos}
   for n:=0 to Table1.FieldCount-1 do 
   begin 
     Recuerda^[n]:=Table1.Fields[n].AsVariant;
   end; 
 
   {Añadimos un registro}
   Table1.Append;
   {Lo rellenamos}
   for n:=0 to Table1.FieldCount-1 do 
   begin 
     Table1.Fields[n].AsVariant:=Recuerda^[n];
   end; 
   {Lo grabamos}
   Table1.Post;
 
   {Liberamos memoria}
   FreeMem(Recuerda, Campos * SizeOf(Variant));
end;


Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita