2016-11-23 9 views
1

私はパスカルの初心者ですが、私はすでにそれについていくつかのことを読んでいますが、それはまだかなり難しいです。私は、単純なパスワードジェネレータを作成し、文字の数を調整したい。コードにコンボボックスの値

私はこれである、実際に私のためにランダムなパスワードを生成する関数を見つけました:

function RandomPassword(PLen: Integer): string; 
var 
str: string; 
begin 
Randomize; 
//string with all possible chars 
str := 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'; 
Result := ''; 
repeat 
Result := Result + str[Random(Length(str)) + 1]; 
until (Length(Result) = PLen) 
end; 

これはメモに文字列を出力するコードです:

procedure TForm1.Button2Click(Sender: TObject); 
begin 
Memo1.Caption := RandomPassword(10); 
end; 

私もですTComboBoxを使用し、コンボボックスの値を使用して文字数を選択したい(6-32)。文字の数はこの場合10ですが、私はあらかじめ決められた数の代わりにComboboxからの値を使いたいと思います。誰が私を助けられるか?私はそれを感謝します!

答えて

0

あなたはこのようにコンボボックスの値を選択することができます。

RandomPassword(StrToInt(ComboBox.Items[ComboBox.ItemIndex]))

ComboBox.ItemIndexは、コンボボックス内の項目を選択するために使用される選択コンボボックスの項目

ComboBox.Items[]のインデックスを返します。コンボボックスの値が文字列であり、あなたはあなたの応答のための

+0

@Permambucoオーケー感謝を整数にそれを変更する必要が原因

StrToInt()が使用されています!しかし、コードに実装する方法はわかりません。基本的に私が必要とするのは、RandomPasswordの後の10インチがComboboxの値になるため、10をクリックすると10文字になります。これをどのように修正できるか知っていますか?私はそれがどうやってできるのか分かりません。 – Olivier

+0

上記のようにitemindexを使用するか、現在のcombobox.itemindexを常に反映するcombobox.textプロパティを使用できます。コンボボックス行はテキストベースなので、テキストは '10'になります。だから:myInteger:= StrToInt(Combobox.Text)は、文字列 '10'の整数値を返します。 – juus

+0

それは働いた!おかげで、あなたは本当に私を助けた:) – Olivier

関連する問題