gpt4 book ai didi

windows - 选择多个复选框以执行条件

转载 作者:可可西里 更新时间:2023-11-01 10:55:40 26 4
gpt4 key购买 nike

我想要一个文本文件在我选中 2 个复选框后显示 memo1 中的内容。我该怎么做?

我尝试了下面的代码,但似乎无法正确执行。

if CheckBox1.Checked and CheckBox2.Checked then
begin
memo1.lines.LoadFromFile('files\RS.txt');
end;

我还希望能够单独选择复选框喜欢:(指出这一点以防将它们组合起来阻止单独检查它们)

复选框 1:

procedure TForm1.CheckBox1Change(Sender: TObject);
begin
memo1.lines.LoadFromFile('files\R.txt');
end;

复选框2:

procedure TForm1.CheckBox2Change(Sender: TObject);
begin
memo1.lines.LoadFromFile('files\S.txt');
end;

任何建议/改进将不胜感激。

运行 Lazarus IDE v1.6.4

Windows 10 x64

最佳答案

我假设您的目标是生成一个文件名,该文件名取决于两个复选框的 bool 状态的特定组合 -请参阅下面的示例代码。这样做的目的是它有助于分离你想要的文件名的定义来自你想做什么与它。

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.LoadFromFile(GetFileName);
end;

function TForm1.GetFileName: String;
begin
// Return empty string if neither checkbox is checked
Result := '';

if Checkbox1.Checked and Checkbox2.Checked then
Result := 'files\RS.txt'
else // if we reach here only one of the checkboxes, or neither, is checked
if Checkbox1.Checked then
Result := 'files\R.txt'
else
if Checkbox2.Checked then
Result := 'files\S.txt'
end;

我一开始就为函数的 Result 分配了一个空字符串,以确保始终定义 Result

重要 您会注意到上面的代码使用复选框的更改事件。原因是如果永远不会触发 Change 事件,您可能无法获得所需(或期望)的结果 - 例如,如果一个 CheckBox 在 IDE 中设置为 Checked 但另一个未设置,并且您想获得正确的文件名,无论用户是否实际点击了其中任何一个。

关于windows - 选择多个复选框以执行条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44986477/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com