Una forma de hacerlo es utilizando la función MatchesMask de la unidad Masks:
Código:
const
Mask = '[Vv]-[0-9][0-9].[0-9][0-9][0-9].[0-9][0-9][0-9]';
begin
if not MatchesMask(Edit1.Text, Mask) then
Application.MessageBox('Formato incorrecto', 'Error', MB_OK or MB_ICONSTOP);
end;
Este código podrías ponerlo en el evento OnExit del Edit1. Busca en la ayuda de Delphi acerca de esta función para entender cómo funciona. Básicamente MatchesMask comprueba que cada caracter de la cadena (Edit1.Text en este caso) coincida con el caracter correspondiente de la máscara o con uno de los caracteres en el conjunto encerrado por corchetes []. En tu caso la máscara compara el primer caracter y verifica que sea 'v' o 'V', el segundo debe ser un guión, el tercero y cuarto un número, el quinto un punto, etc.
// Saludos