2016-11-23 63 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