27. januar 2006 - 12:01Der er
5 kommentarer og 1 løsning
Skælne mellem Random String og egen indtastning - Hvordan?
Jeg har en Form hvorpå der er 1 Knap og 1 Edit Felt. Når jeg trykker på kanppen så får jeg en random string i mit edit felt.
(Functionen laver en random string ud af '1234ABCDE' Eks. : E32ABD41C) (Se kode)
Mit Spørgsmål er så : Hvordan kan jeg, på en ny form med et edit felt, tjekke om min random string, (E32ABD41C), kommer fra min Function 'GetRandomString' og ikke fra noget som jeg selv har indtastet, ved at sætte min random string 'E32ABD41C' ind i mit edit felt på form 2 og trykker på min knap der hedder tjek String?
I sin helhed skal Form2 "bare" skælne mellem min egen indtastning og functionen 'GetRandomString'.
*******KODE-START******
Function GetRandomString : string; {returnerer en tilfældig alfabetstreng} Var Temp,Alfabet:string; J,I:integer; Begin Randomize; Alfabet := '1234ABCDE'; J := length(Alfabet); While (J > 0) do Begin I := random(J)+1; Temp := Temp + Alfabet[I]; Delete(Alfabet,I,1); Dec(J); End; Result := Temp; End;
procedure TForm1.Button1Click(Sender: TObject); Var Strn : String; begin Strn := GetRandomString; Edit1.Text := Strn; end;
En "quick and dirty" løsning kan vel være bare at lave en global boolean variabel som sættes til True når du kalder din GetRandomString funktion. Så kan du så på din Form2 tjekke om den variabel er True - hvis den er det, så er strengen i Edit1 lavet af din GetRandomString funktion.
Det kan ikke lade sig gøre at skelne ved at kigge på strengen. Hvad enten strengen kommer fra en function eller er tastet ind, så er strengen den samme, der er ingen forskel. Man kunne teste om strengen indeholder tegn som din funktion ikke laver, men den holder ikke hvis man nøjes med at indtaste samme tegn som din funktion laver. Det eneste du kan gøre at er sætte et flag i Edit-feltets OnChange event og hvis flaget er sat så er der blevet indtastet noget i feltet.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.