Delphi 如何将20个项的值从对话框(窗体)传递给调用者(窗体) 我在C++的Builder XE4上工作VCL。
我有以下组件 FormMain具有Delphi 如何将20个项的值从对话框(窗体)传递给调用者(窗体) 我在C++的Builder XE4上工作VCL。,delphi,c++builder,Delphi,C++builder,我有以下组件 FormMain具有 t按钮*B_选择 FormSelect(或DialogSelect)具有 TComboBox*CB_列表 t按钮*B_确定 t按钮*B_取消 期望行为 @FormMain,单击“选择”打开FormSelect @FormSelect,在CB_列表中选择列表 @FormSelect,单击B_确定将listindex传递给FormMain 在上面的第3步中,我想做: 关闭窗体选择 将listindex传递给调用方(FormMain) 通过使用对话框,我
- t按钮*B_选择李>
- TComboBox*CB_列表李>
- t按钮*B_确定李>
- t按钮*B_取消李>
- 关闭窗体选择
- 将listindex传递给调用方(FormMain)
如何使用表单/对话框传递值?将
B_ok.ModalResult
设置为mrOk
。(给出了Delphi代码,因为您将Delphi包含在标记中。)
使用if FormSelect.showmodel=mrOk
查看是否单击了Ok
按钮。阅读FormSelect.CB_list.ItemIndex
,找出所选的值
或者,更好的做法是,为t或mselect
提供一个包含ItemSelected
的公共属性。将其设置为B_ok.OnClick
事件中的cbu list.ItemIndex
:
type
TFormSelect = class(TForm)
// other declarations
procedure B_okClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
FItemSelected: Integer;
public
property ItemSelected: Integer read FItemSelected;
end;
implementation
procedure TFormSelect.B_okClick(Sender: TObject);
begin
FItemSelected := CB_list.ItemIndex;
end;
procedure TFormSelect.FormCreate(Sender: TObject);
begin
FItemSelected := -1;
end;
在调用代码中:
SelectForm := TFormSelect.Create(nil);
try
if SelectForm.ShowModal = mrOk then
SelectedItem := SelectForm.ItemSelected;
finally
SelectForm.Free;
end;
非常感谢您的回复。有了示例代码,您的回复真的很有帮助!谢谢你对代码的改进Remy Lebeau。