Jod..., Lepe, q es fiesta. Te me has adelantada porque es exactamente como lo he solucionado. Pero las gracias te las mereces igualmente o más. Yo lo había escrito así:
Código Delphi
[-]
procedure TfmPal.ToolButton3Click(Sender: TObject);
var
Recuerda : array of variant;
n:integer;
begin
SetLength(Recuerda,Table1.FieldCount);
Table1.Last;
for n:=0 to Table1.FieldCount-1 do
begin
Recuerda[n]:=Table1.Fields[n].AsVariant;
end;
Table1.Append;
for n:=0 to Table1.FieldCount-1 do
begin
Table1.Fields[n].AsVariant:=Recuerda[n];
end;
Table1.Post;
Recuerda:=nil;
end;
El nil era por si acaso, pero ya me queda claro con tu comentario q es redundante. También he quitado la asignación Type, y me funciona estupendo. Ya lo estoy implementando en mi componente del DBX.pas, de modo q al crear un nuevo registro (a través del evento del DBNavigator BeforeAction, ya q el TTable está en mi DataModule y no puedo sobrescribir su BeforeInsert (q ya está escito desde el DM), asigno los valores actuales a este array de variants), para poder insertar los valores de cada campo iguales al anterior por medio de F4 (en mi caso: antiguo usuario Magic). Aún me falta cuando el DBeditor es un DBLookUpComboBox. Pero como también soy usuario de mis programas, me lo voy a agradecer mucho.
Pero no entiendo porque en el código del que extrajimos este procedimiento, se cuelga en la Variant.pas, y no en la asignación de los punteros. Desde luego así es mucho más legible y comprensible, pero veo código por ahí q con los punteros consiguen
todo. No te molestes en contestar aquí lo de los punteros, porque realmente no pertenecia a este hilo SQL, ya mi pregunta anterior. Cuando pueda ya buscaré por aquí a ver q entiendo, y si me lanzo a usarlos algo más. Gracias por tus ayudas, ... piensate lo de la fotillo, aunque la CCC también vale!