Hola oscjae, efectivamente éste no es el sub-foro adecuado, el espacio más neutral para los temas "mixtos" es el sub-foro
Varios.
La forma en que actualices tu aplicación es meramente el producto de tu capacidad, imaginación y experiencia, tan solo te doy un ejemplo.
Tu aplicacion verifica via Web las actualizaciones, una vez encontrada la descarga en un archivo temporal. Terminada la descarga procede a auto-renombrarse a un nombre
dummy.tmp y renombra el archivo temporal al nombre original de la aplicación. Hasta allí el reemplazo ha sido exitoso. Ahora debe marcar al archivo
dummy.tmp para eliminación o eliminarlo al arrancar la nueva versión.
Código Delphi
[-]
MoveFile(PChar(ParamStr(0)), 'dummy.tmp');
MoveFile('c:\downloaded.tmp', PChar(ParamStr(0)));
CreateProcess(nil, PChar(ParamStr(0)), ...
Halt;
Sleep(1000);
DeleteFile('dummy.tmp');
El anterior código es solo una pequeña muestra, y como ya te comentaba los métodos para realizar lo que quieres dependen de la habilidad del programador.
Saludos