Recien leo este hilo, asi que voy a intentar aclarar algunas cosas.
Primero, kanvictor estas mesclando dos cosas, una es contar el tiempo transcurrido entre dos eventos y el otro es mostrar este tiempo. Lo escencial es separarlos.
Donde esta tu problema? radica en que cuando le decis TTimer, que cada un segundo (por ejemplo) te genere el evento OnTimer, el TTimer espera que transcurra este tiempo y recien se llama tu evento. Lo cual genera entre un desfasaje entre el tiempo que le pediste y el momento que llegó. Sumando ese desfasaje tenes tus 10 segundos.
Por lo que veo, tus necesidades no son de controlar el tiempo con gran precición, por lo que podes usar el TTimer tranquilamente.
Para controlar el Tiempo simplemente pudes usar la función
Time. Cuando recibes el mesaje desde el socket guardas el tiempo con Time y activas tu TTimer.
Luego en tu evento OnTimer:
Código Delphi
[-]
formx.LabelTimer.Caption:= FormatdateTime('hh:mm:ss',Time - TiempoInicial);
y solucionado el problema
