我只是想知道我是否正在做一些可能不好的事情,尽管这对我来说似乎是一个非常实用的解决方案......
我有两种用户必须通过的表格。用户单击一个按钮并弹出 form1。用户按下 OK 并弹出第二个。用户再次单击确定,屏幕消失。或者用户单击重试,屏幕返回到第一个。两个屏幕的大小完全不同,信息也不同。
所以我想出了这个代码:
Form1 := TForm1.Create(SharedData);
Form2 := TForm2.Create(SharedData);
repeat
ModalResult := Form1.ShowModal;
if (ModalResult = mrOK) then ModalResult := Form2.ShowModal;
until (ModalResult <> mrRetry);
Form1.Release;
Form2.Release;
我已经测试了这段代码,它似乎很有魅力。在此代码中,SharedData 是一个对象,其中包含由两种表单操作的数据。我在创建两个表单之前创建了这个对象,当 ModalResult==mrOK 我只是将数据写回数据库。
问题是,虽然我认为这是处理两种形式之间翻转的干净解决方案,但我不记得以前见过类似这种结构的东西。当然,我是天才。(至少,我 Ego 告诉我我是。)但是是否有反对使用这段代码的东西,或者它就可以了吗?