Merhaba,
Çok zamanım olmadığından performanslı bir şey yazamadım ama kaba mantığı bu, geliştirip kullanılmasını öneririm.
Uses
System.Character;
function kontrolet(str:String):Boolean;
var
i: integer;
durum: array[0..2] of Boolean;
begin
if str.Trim ='' then
exit(false);
durum[0] := false; durum[1] := false; durum[2] := false;
for i := 0 to Length(str) do
begin
if str[i].IsUpper = true then
durum[0] := True;
if str[i].IsLower = true then
durum[1] := True;
if str[i].IsPunctuation = true then
durum[2] := True;
end;
if (durum[0]=true)and(durum[1]=true)and(durum[2]=true) then
Result := true;
end;