我正在使用delphi 7而我正在尝试创建一个向导界面。我不知道是否有更简单的方法来创建向导,所以我想为向导的每个步骤创建单独的表单,当用户单击“下一步”时,活动表单将关闭,下一个将打开。 / p>
以下是两个连续形式的屏幕截图:
我制作了一个程序,将2个表单作为参数:将要关闭的表单和向导的下一个表单
class Procedure Tspad.nextForm(showForm, closeForm: TForm);
begin
closeForm.Close;
showForm.Showmodal;
end;
当我点击“下一步”按钮时,执行以下代码:
Tspad.nextForm(echipContractForm, clientContractForm);
当我运行该程序时,我按下“下一步”按钮,下一个表单就会出现,但是当然没有关闭。
我如何才能完成这项工作,还是有另一种更有效的方法来创建向导?
答案 0 :(得分:20)
制作向导的一种非常常见的方法是使用页面控件。向导的每个不同页面都是页面控件中的不同页面/标签页。我相信这实际上是Windows实现向导的方式。
当然,您希望隐藏所有标签。通过为每个标签页设置TabVisible
到False
来执行此操作。当您希望通过向导向前和向后移动时,例如当用户点击下一个或上一个按钮时,请根据您的偏好设置ActivePage
或ActivePageIndex
来实现此效果。
答案 1 :(得分:14)
在单个表单上显示的内容划分的一个好方法是使用 Frames 。
Frame 很像一个表单,除了它没有自己的Window,而是位于主机表单中。
当与(如David Heffernan建议的那样)TPageControl
甚至TNotebook
(与TPageControl
非常相同时)相结合时,只有它不会'有了以开头的标签符号),你最终得到了一个易于维护的向导。
答案 2 :(得分:11)
JVCL可以很好地控制以非常简单有效的方式创建向导(TJvWizard)。见http://jvcl.delphi-jedi.org/
答案 3 :(得分:3)
您可以试试这些:
答案 4 :(得分:2)
您可以测试一些可以帮助您完成此任务的组件(内部使用tPageControl或TNotebook)。见this link。
问候。
答案 5 :(得分:0)
你也可以考虑TMS TAdvSmoothStepControl(不是免费的!)。 另一个解决方案,但只是程序的“外部”,是使用Inno Setup制作向导,即使是出于“非安装设置”的目的。
事实上,使用Inno Setup,您可以进行大量的思考(修改.ini文件和注册表,启动/停止程序...),这对于没有“安装”程序的向导非常有用。