求助:窗口联动数据变化

rogersgb 2017-09-18 10:49:56
我有一个Form1,其中是combobox用来显示数据列表用的,且有一个按钮用来操作添加,当点击这个按钮的时候打开Form2(用showModal打开,TForm2.Create(Self).ShowModal;),我要在Form2中添加完数据在数据库中关闭窗口后刷新Form1中的combobox下拉显示增加的数据
...全文
523 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
日月路明 2017-12-25
  • 打赏
  • 举报
回复
因为ShowModal;是模态显示,所以,关闭Form2才会执行后续代码,所以,在ShowModal;之后直接调用刷新过程即可
日月路明 2017-12-25
  • 打赏
  • 举报
回复
这个问题很简单,这么些就可以了: TForm2.Create(Self).ShowModal; 在这里直接写你的刷新过程就行了
SupermanTm 2017-12-24
  • 打赏
  • 举报
回复
很简单啊,既然你的 Form1 uses 了 Form2,你在 Form2 的 Interface 里声明一个变量,把你需要刷新的值放在这里,Form2的OnClose里把值放到那里,Form1的 Form2.ShowModal 后就从那个变量取数据就是了
jeetliang 2017-12-23
  • 打赏
  • 举报
回复
关闭后触发刷新按钮
看那山瞧那水 2017-10-30
  • 打赏
  • 举报
回复
更一般的方法可以用消息通知,Form2里保存数据到数据库成功了,发个消息通知Form1数据变化了,这样可以解耦Form2和Form1 的关联,也可以不限定Form1在什么事件里刷新数据。 现在的Delphi支持观察者模式了(发布/订阅),很方便的。参考System.Messaging单元。
lyhoo163 2017-10-30
  • 打赏
  • 举报
回复
在Form中宣言一个刷新Combobox1的过程。 Form2关闭时,调用Form1的 刷新Combobox1的过程。
victor_yang 2017-10-30
  • 打赏
  • 举报
回复
说下思路吧: 1、Form2负责维护数据,和Form1没关系 2、Form2 关闭后Form1刷新下拉框的选项 重点在这里 Form1的按钮事件里 Form2.Showmodal; Freeandnil(Form2); //Form2 将新选项添加到数据库就可以了,不要操作Form1,用完就释放掉 ComboBox1.items.Clear; //清除旧的下拉框里的选项 AddList事件; //此处从数据库里获取新的选项,这个事件可以在Form1.Show里使用,优化下代码 清楚我的意思吗?
whb00120012 2017-10-25
  • 打赏
  • 举报
回复
有两种方法:一种:在FORM2的 close事件中直接写: FORM1. cbb1.Items.Add(""" ); 定义全局变量:    在form2中给 全局变量赋值,FROM2 关闭后,在FORm1中引用。
lmdyw 2017-09-24
  • 打赏
  • 举报
回复
if form2.showmodel= mr_OK then cbb1.Items.Add('a');

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧