主窗口:main 上有 按钮:bitbtnNew 和 一些edit域
新窗口:addnew 上有 按钮:bitbtnOK 和 一些edit域1.点击bitbtnNew按钮,弹出一个新窗口(addnew),在上面填写一条新信息,
2.点击bitbtnOK,将新添加的纪录写到库中,同时我希望将新纪录的内容回写到主窗口的edit域中,
我现在就是回写不进去,
我现在应该怎么做????请各位高手帮帮忙?!!!!
新窗口:addnew 上有 按钮:bitbtnOK 和 一些edit域1.点击bitbtnNew按钮,弹出一个新窗口(addnew),在上面填写一条新信息,
2.点击bitbtnOK,将新添加的纪录写到库中,同时我希望将新纪录的内容回写到主窗口的edit域中,
我现在就是回写不进去,
我现在应该怎么做????请各位高手帮帮忙?!!!!
解决方案 »
- 求高手解决 dephi WideString转换pchar 的问题
- 在delphi里用clientdataset 如何调用sql server 的存储过程
- 求助:怎样打开并显示文件?
- 如何让一个不可视的程序不再出现在Alt+Tab中?
- 如下的Treeview中想获取相应的根下的接点内容怎么可以提取???
- 如何读取指定文本中的某一行
- 三个不难的问题,进来解答一下吧。
- 请问如何调用vb的Dll?????????????????????????????????????????????????????????????????
- 怎样在打印的时候让一条记录打印一页?
- 我想用一个 变量代替表中的字段,怎么写这个语句呢
- Question2
- 使用TADOQuery,调试过程中提示异常“EOleException '尚未调用CoInitialize' ”
将新窗口里的EDITS。TEXT装入数组,
然后再赋给主窗体,这样的话就能实现万变不离其中的效果
各位对我的建议感觉如何
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.ShowModal;
end;
form2中
procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.Edit1.Text := Self.Edit1.Text;
end;同时form1引用form2, form2引用form1, 但两者的引用不要同时都写在interface里,否则会报错
如果是多个EDIT,而且当没有存入库中,还要在
MIAN 中显示吗,
我觉得应该在存库语句当中用IF语句
如果存库成功,则赋值,未存库成功,则不赋值
各位请对我的意见作出回复
你说的方法当然是可行的,楼上的有人说直接引用,这样完全违背了面向对象编程的方法,一旦addnew窗体、发生变化,那么就波及其他单元的代码,这在项目中是件很可怕的事情,好的做法,是由addnew单元提供统一接口,其他单元只调用这个接口就行了,这样当addnew发生变化,维护的就只是这个单位了,减少了影响。
对于,数据库开发,我碰到一个高手说过,用面向对象去封装,好处多多,可惜当时功力太浅,尚不是很明白,现在总算有一点感觉了,面向对象确实以少的代码写出高质量的软件。
TAddNew = class(TForm)
...
public
function GetEditMemo:TRcd; //最早我喜欢用record类型来定义,现在打算换成class,但方法还在摸索中....:(
procedure SetEditMemo(Rcd: TRcd);
...
end;function TAddNew.GetEditMemo: TRcd;
begin
//将每个Edit的内容付值给Rcd记录
end;procedure TAddNew.SetEditMemo(Rcd: TRcd);
begin
//根据Rcd记录来设置Edit的内容
end; 当然这是最简单的封装,离真正的对象编程还很远,现在俺特别想看看delphi对象持久化技术。
type
TMyRcd = record
FieldA: string;
FieldB: Integer;
FieldC: Boolean;
end;最早的习惯,现在打算放弃这个习惯了。
这个问题是循环引用,Borland,应该是Delphi不提倡这种做法的,一种折衷的办法是应用公用单元或是接口进行引用
用循环引用也可以的,可是你要小心,不要把两个单元引用都放在了Interface(声明)或是implementation(实现)处,而是应该把他们分开引用,你看一下
Unit Unit1;Interfaceuses
Windows,...,Unit2;
....
end
Unit Unit2;Interface
uses
...;implementation
uses
Unit1;
....
end;
调用就和平常的调用是一样的:)
以后不要再叫自己是小妹哦,不然人家会说你的
用他们的方法就行了
这么多搞。唉
被调窗口不返回时是不能与主调窗体通信的
我的经验是Create之后showmodal之前 或者是showmodal之后Free之前都是允许的
type
TMyRcd = record
FieldA: string;
FieldB: Integer;
FieldC: Boolean;
end;然后在第一个窗体中写
function MyRcdToedit(AMyRcd:TMyRcd):Boolean;
beginend;
在新弹出的录入窗体中添加属性
published
Property MyRcd:TMyRcd Read GetMyRcd Write SetMyRcd;//(如果是修改时就用到了).定义一个专门用来操作数据库的类,写在公共引用单元中。
TForm1,TForm2两个对象只用来显示数据。