Delphi 从菜单项中显示另一个表单单击

Delphi 从菜单项中显示另一个表单单击,delphi,Delphi,我是德尔福的新手,在老德尔福项目上工作。我想在单击菜单项时调用另一个表单。我下面有这个程序。现在我在当前表单单元中没有NotifyClose和RUNFORMCOPTION值作为参数传递给ShowScreens。。。另一单位的程序。我该怎么办?有什么建议吗 procedure TForm.ShowScreens(Owner: TForm; Device: TComponent; RunFormOption:Integer; NotifyClose: TNotifyEvent); begin

我是德尔福的新手,在老德尔福项目上工作。我想在单击菜单项时调用另一个表单。我下面有这个程序。现在我在当前表单单元中没有NotifyClose和RUNFORMCOPTION值作为参数传递给ShowScreens。。。另一单位的程序。我该怎么办?有什么建议吗

procedure TForm.ShowScreens(Owner: TForm;
 Device: TComponent; RunFormOption:Integer; NotifyClose: TNotifyEvent);

begin
  FUsed:=True;
  onSetupClose:=onSetupClose;
  MakeConnection(device,NotifyClose);
end;

您希望在单击菜单项后显示表单,对吗? 只需添加以下内容

procedure YourMainFormName.onClick(Sender: TObject);
begin
    YourNewFormName.Show;
end;
通过Obspect Inspect-F11为TMenuItem的OnClick程序指定一个

只需确保将NewFormName包含在MainFormName的uses部分


我希望这解决了你的问题。祝你好运。

问题是什么?请从我们的角度阅读你的问题,你会发现我们什么都不懂。如果需要help.FWIW,请重新格式化问题。对于RunFormOption,我会选择42或666。@David,但这可能会打开“导入文本文件”对话框。我感觉OP实际上不是问如何显示第二个表单,而是问如何获取可能在其他单元中声明或设置的两个缺少的参数。如果这是真正的问题,那么答案是将该单元添加到uses部分。如果其他单位在“使用”部分中添加了此单位,则可能需要在“实施”部分中创建新的“使用”部分,以避免循环引用。最好将操作分配给菜单项。我开始觉得自己像一个传播者:-@TLama我以前在德里规范中看到过一些行为,并且知道这项工程是如何进行的,但它的优点是什么?我只认为这是不必要的额外编码,但我可能还是错了。@mg30rg,后面没有额外的编码。您执行的代码只编写一次。可以分配给许多UI控件,因为您可以分配相同的操作,例如按钮和菜单项。此外,它们是从一个位置操作列表管理的,这比查找许多控件的事件处理程序更容易。@mg30rg,是的,而不是事件处理程序。@TLama我现在明白了。我真的不喜欢这个想法,因为我真的不喜欢编程功能遍布整个设计器是的,我讨厌他们在设计器中定义SQL命令/连接字符串/初始值等,并且仅读取源代码文件时找不到,据我所知,在设计器中,动作与事件配对,而不是与代码配对,但这是品味的问题。