2016-11-23 66 views
1

我是帕斯卡新手,我已經閱讀了一些關於它的東西,但對我來說還是很難。我想創建一個簡單的密碼生成器,並調整字符數。Combobox值到代碼

我發現,其實對我產生隨機密碼的功能,它是這樣的:

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[]的指數是用來選擇在組合框中一個項目。

StrToInt()用於事業組合框的值是一個字符串,你必須將它更改爲整數。您迴應

+0

@Permambuco好感謝!但是,我不知道如何將其實現到代碼中。基本上我需要的是RandomPassword後面的10將是Combobox的值,所以如果我點擊10它將會是10個字符等等。你知道我該如何解決這個問題嗎?我只是看不懂我該怎麼做。 – Olivier

+0

您可以使用itemindex如上所述,或者combobox.text屬性,它始終反映當前的combobox.itemindex。由於組合框線是基於文本的文本將是'10'。所以:myInteger:= StrToInt(Combobox.Text)返回字符串'10'的整數值,然後可以使用它。 – juus

+0

它的工作!謝謝你們,你真的幫我了:) – Olivier