Tengo una función en JavaScript que hace algo como lo que quieres, ya sería que la traduzcas a Delphi:
Código:
function check_pw(pw_to_check)
{
var counter_to_check = 0;
var minlength_to_check = 6;
if (pw_to_check.length >= minlength_to_check)
{
counter_to_check = counter_to_check + 1;
}
if (pw_to_check.match(/[A-Z\Ä\Ö\Ü]/))
{
counter_to_check = counter_to_check + 2;
}
if (pw_to_check.match(/[a-z\ä\ö\ü\ß]/))
{
counter_to_check = counter_to_check + 1;
}
if (pw_to_check.match(/[0-9]/))
{
counter_to_check = counter_to_check + 2;
}
if (pw_to_check.match(/[\.\,\?\!\%\*\_\#\:\;\~\\&\$\§\€\@\/\=\+\-\(\)\[\]\|\<\>]/))
{
counter_to_check = counter_to_check + 2;
}
if (pw_to_check == document.getElementsByName('username').username.value)
{
counter_to_check = 0;
}
if (pw_to_check == document.getElementsByName('email').email.value)
{
counter_to_check = 0;
}
if (counter_to_check <= 2)
{
document.getElementsByName('holder_pw')[0].style.backgroundColor = 'red';
document.getElementsByName('holder_pw')[0].style.color = 'black';
document.getElementsByName('holder_pw')[0].style.border = '1px solid black';
document.getElementsByName('holder_pw')[0].value = 'Insegura';
}
else if (counter_to_check <= 4)
{
document.getElementsByName('holder_pw')[0].style.backgroundColor = 'yellow';
document.getElementsByName('holder_pw')[0].style.color = 'black';
document.getElementsByName('holder_pw')[0].style.border = '1px solid black';
document.getElementsByName('holder_pw')[0].value = 'No recomendable';
}
else if (counter_to_check <= 5)
{
document.getElementsByName('holder_pw')[0].style.backgroundColor = 'green';
document.getElementsByName('holder_pw')[0].style.color = 'white';
document.getElementsByName('holder_pw')[0].style.border = '1px solid black';
document.getElementsByName('holder_pw')[0].value = 'Relativamente segura';
}
else if (counter_to_check <= 7)
{
document.getElementsByName('holder_pw')[0].style.backgroundColor = 'green';
document.getElementsByName('holder_pw')[0].style.color = 'white';
document.getElementsByName('holder_pw')[0].style.border = '1px solid black';
document.getElementsByName('holder_pw')[0].value = 'Segura';
}
else if (counter_to_check == 8)
{
document.getElementsByName('holder_pw')[0].style.backgroundColor = 'green';
document.getElementsByName('holder_pw')[0].style.color = 'white';
document.getElementsByName('holder_pw')[0].style.border = '1px solid black';
document.getElementsByName('holder_pw')[0].value = 'Muy segura';
}
}
Si te fijas, usan mucho las expresiones regulares. Existe para Delphi alguna biblioteca para manejo de expresiones regulares, solo es cosa que hagas una búsqueda...
Saludos...