Hola.
Tengo un puntero a un array y quiero hacer una copia de ese array, pero no consigo saber como hacerlo.
Os pongo el ejemplo:
Código:
PKeyStateArr = ^TKeyStateArr;
TKeyStateArr = array[0..65000] of UInt8;
var
Teclado : PKeyStateArr;
TecladoAntes : TKeyStateArr;
begin
// antes de actualizar el estado de las teclas
// hacemos una copia de como estaba antes el teclado
// ESTO ES LO QUE NO SE COMO HACER,
// PONGO VARIOS EJEMPLOS QUE NO FUNCIONAN
// Teclado YA VIENE CON UN VALOR INICIALIZADO
TecladoAntes := Teclado^;
TecladoAntes := Copy(TKeyStateArr(Teclado), 1, Length(TKeyStateArr));
TecladoAntes := PKeyStateArr(Teclado)^;
// actualizamos el array con las teclas pulsadas
Teclado := PKeyStateArr(SDL_GetKeyState(nil));
La explicación es sencilla, con SDL_GetKeyState(nil) obtenemos un puntero a un array que dice el estado de todas las teclas y yo quiero hacer una copia de ese estado para luego poder comprobar si la tecla se acaba de pulsar o ya estaba pulsada.
si
Teclado y
TecladoAntes los hago de tipo
PKeyStateArr y hago una asignación
TecladoAntes := Teclado no me sirve porque cuando actualizo el
Teclado también se actualiza
TecladoAntes
¿ Como puedo copiar el array sin tener que hacer un for i=1 to length(TKeyStateArr) : TecladoAntes[i] := Teclado[i] ?
Saludos.