Saludos
Antes que todo,
lynu, decirte que 2 preguntas conlleva 2 hilos. Y los titulos de cada uno deben ser descriptivos.
Ahora
1) Algo que se me ocurre es verificar que exista la arroba y despues verificar si existe el punto (despues de la arroba, no antes)
Código Delphi
[-]
var
m,n:integer;
begin
m:=pos('@',edt1.Text);
n:=pos('.',edt1.Text)-1;
if not ((m>0) and (n>m) and (n < Length(edt1.Text))) then
showmessage('Email no válido');
end;