如题。
解决方案 »
- 线程同步
- (菜鸟提问)更新数据库的时候,想用一个新的form逐字段的更新数据库里的内容,怎么实现?
- 做服务程序遇到的问题.为什么启动一下之后,什么也没有呢?
- 带#13的字符串,在memo中显示,怎么不换行呢?
- 给其他程序添加菜单,点击菜单运行另外一个程序。
- delphi6.0下的图片特效控件谁有啊?
- 很奇怪的一个问题,某函数的一个参数为pchar类型的,做成dll调用有问题,而把这个函数放在unit1.pas里面,与dll无关系,使用就没有问题
- 菜鸟遇到一个问题,高分求教!!
- 马上给分
- ado访问orcale数据库时,如果表里有blob字段,为什么打开表时报“数据类型不支持”的错误?
- idhttp post 实例 不知道哪位大侠有
- Form1和Form2都可以调用Form3,Form3如何才能知道是哪个窗体调用它的呢?
Form3中选中学历后关闭,如果是Form1调用的,则给Form1中的Edit1赋值;如果是Form2调用的,则给Form2中的Edit1赋值。
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm2 = class(TForm)
Label1: TLabel;
btnCreateForm3: TButton;
procedure btnCreateForm3Click(Sender: TObject);
private
{ Private declarations }
procedure Form3Close(Sender: TObject; var Action: TCloseAction);
public
{ Public declarations }
end;var
Form2: TForm2;implementation
uses
Unit3;
{$R *.dfm}
var
LocalForm3:TForm3;procedure TForm2.btnCreateForm3Click(Sender: TObject);
begin
LocalForm3:=TForm3.Create(Application);
LocalForm3.OnClose := Form3Close;
LocalForm3.Show;
end;procedure TForm2.Form3Close(Sender: TObject; var Action: TCloseAction);
begin
Label1.Caption := 'Form3Close is Called!';
end;
end.
Application.CreateForm(TForm3,Form3);
Form3.frmname:='form1';
Form3.ShowModal;
如果是form2调用
Application.CreateForm(TForm3,Form3);
Form3.frmname:='form2';
Form3.ShowModal;
在form3的close事件写
if frmname='form1' then Form1.edit1:=XX;
if frmname='form2' then Form2.edit1:=XX;
在Form3中定义一个用于选择学历的函数,并返回其值。
public
function GetEducationLevel: String;
Form1和Form2中做如下调用:
Self.edtEducationLevel.Text := form3.GetEducationLevel;
如果Form3仅做单一用途,即只返回学历,建议在Form3中写个类方法public
class function GetEducationLevel: String;class function GetEducationLevel: String;
begin
with TForm3.Create(Nil) do
try
//将学历待选项添加到Form3上的Combobox控件中
if Form.ShowModal = mrOk
then Result := Combobox1.Text //返回选择的学历
else Result := EmptyStr;
finally
Free;
end;
end;在Form1和Form2中只需如下调用即可:
Self.Edit1.Text := TForm3.GetEducationLevel;
//在调用的窗体里设定一个全局变量 ParentTxt:string; //子窗体的调用
Application.CreateForm(TForm3,Form3);
Form3.Parent:=self;
Form3.ShowModal;
在form3的close事件写
self.parent.ParentTxt:=self.edit1.text;
//这样做比较通用一些 安全性比较高 (我认为) 也可以利用消息机制来解决这个问题
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * from spec');
ADOQuery1.SQL.Add(' where spec like '+'''%'+Edit1.Text+'%''');
ADOQuery1.Open;
这是查询学历的语句,这句能放在函数中吗?
Application.CreateForm(TForm3,Form3);
Form3.frmname:='form1';
Form3.ShowModal;
如果是form2调用
Application.CreateForm(TForm3,Form3);
Form3.frmname:='form2';
Form3.ShowModal;
在form3的close事件写
if frmname='form1' then Form1.edit1:=XX;
if frmname='form2' then Form2.edit1:=XX;
----------------------------------------------------------------同意,我都是这样做的