Witajcie :) Tak sobie z nudow napisalem cos ala brute force :

procedure TForm1.Button1Click(Sender: TObject);
var
alfabet : array[1..26] of string;
i,i2,i3,i4,i5 : integer;
slowo ,slowo2: string;
const
haslo = 'HASLO';
begin
alfabet[1] := 'A';
alfabet[2] := 'B';
alfabet[3] := 'C';
alfabet[4] := 'D';
alfabet[5] := 'E';
alfabet[6] := 'F';
alfabet[7] := 'G';
alfabet[8] := 'H';
alfabet[9] := 'I';
alfabet[10] := 'J';
alfabet[11] := 'K';
alfabet[12] := 'L';
alfabet[13] := 'M';
alfabet[14] := 'N';
alfabet[15] := 'O';
alfabet[16] := 'P';
alfabet[17] := 'Q';
alfabet[18] := 'R';
alfabet[19] := 'S';
alfabet[20] := 'T';
alfabet[21] := 'U';
alfabet[22] := 'V';
alfabet[23] := 'W';
alfabet[24] := 'X';
alfabet[25] := 'Y';
alfabet[26] := 'Z';
// caly alfabet mozna to skrocic i zapisac inaczej

for i := low(alfabet) to high(alfabet) do begin
application.ProcessMessages;
label1.Caption:=alfabet[i];
for i2 := low(alfabet) to high(alfabet) do begin
application.ProcessMessages;
label1.Caption:=alfabet[i]+alfabet[i2];
for i3 := low(alfabet) to high(alfabet) do begin
application.ProcessMessages;
label1.Caption:=alfabet[i]+alfabet[i2]+alfabet[i3];
for i4 := low(alfabet) to high(alfabet) do begin
application.ProcessMessages;
label1.Caption:=alfabet[i]+alfabet[i2]+alfabet[i3]+alfabet[i4];
for i5 := low(alfabet) to high(alfabet) do begin
application.ProcessMessages;
label1.Caption:=alfabet[i]+alfabet[i2]+alfabet[i3]+alfabet[i4]+alfabet[i5];
sleep(1);
if label1.Caption = haslo then begin
showmessage('haslo to : ' + label1.Caption);
end; // do warunku
end; // do 5 petli
end; // do 4 petli
end; // do 3 petli
end; // do 2 petli
end; // do 1 petli

end;

Moje pytanie czy znacie jakies inne algorytmy do brute ? :)
Tylko niechodzi mi o gotowe komponenty wole cos z kodem :)

z gory dziekuje :)