delphi中事件调用的问题(在线等)

yoyoxu 2006-04-28 05:17:52
比如增加,删除,存盘 这些在很多地方都可以用到,我现在不想在每个FORM中都写这些控件的代码,
以下有两个FORM中“增加”控件的代码。其中这两个FORM在Clientdataset中的名称不一样,一个是CDSInsurance,另外一个是CDSDorm,如果FormDorm.btnAddClick要调用FormInsurance.btnAddClick的这段代码,应该怎样写?
procedure TFormInsurance.btnAddClick(Sender: TObject);
begin
formDateModule.CDSInsurance.Append;

DBedtNO.Enabled:=true;
DBGrid.Enabled:=false;

DBedtNO.SetFocus;
end;

procedure TFormDorm.btnAddClick(Sender: TObject);
begin
formDateModule.CDSDorm.Append;

DBedtNO.Enabled:=true;
DBGrid.Enabled:=false;

DBedtNO.SetFocus;
end;
...全文
384 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dataopen 2006-08-14
  • 打赏
  • 举报
回复
都是好方法
wudi_1982 2006-08-13
  • 打赏
  • 举报
回复
给你做了一个例子,根据函数名调用函数
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls;

type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('abc');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
showmessage('123');
end;

procedure dy(p: TNotifyEvent;sender : TObject);
begin
p(sender);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
dy(Button1Click,Sender);//调用button1的onclick事件
dy(Button2Click,Sender);//调用button2的onclick事件
end;

end.
andyzhou1101 2006-08-13
  • 打赏
  • 举报
回复
hsmserver(撒哈拉之雨的悲伤)
这段代码应该写在哪个事件里面呢,抱歉,俺是菜鸟:)
procedure appenddata (Clientdataset1:TClientdataset);
begin
Clientdataset1.append;
DBedtNO.Enabled:=true;
DBGrid.Enabled:=false;
end;

-----------------------------------------------

可以创建一个公共单元
其他单元引用这个单元的函数就可以了
ron_xin 2006-08-13
  • 打赏
  • 举报
回复
做个窗体基类嘛~~Form2继承Form1,在Form1写的代码其它继承它的窗体都会调用~~`
wudi_1982 2006-08-13
  • 打赏
  • 举报
回复
我给你做个例子,等下发给你。
yoyoxu 2006-04-28
  • 打赏
  • 举报
回复
hsmserver(撒哈拉之雨的悲伤)
这段代码应该写在哪个事件里面呢,抱歉,俺是菜鸟:)
procedure appenddata (Clientdataset1:TClientdataset);
begin
Clientdataset1.append;
DBedtNO.Enabled:=true;
DBGrid.Enabled:=false;
end;
hsmserver 2006-04-28
  • 打赏
  • 举报
回复
procedure appenddata (Clientdataset1:TClientdataset);
begin
Clientdataset1.append;
DBedtNO.Enabled:=true;
DBGrid.Enabled:=false;
end;


procedure TFormInsurance.btnAddClick(Sender: TObject);
//调用
begin
appenddata(formDateModule.CDSInsurance);
end;
procedure TFormDorm.btnAddClick(Sender: TObject);
//调用
begin
appenddata(formDateModule.CDSDorm);
end;

luxuewei5214 2006-04-28
  • 打赏
  • 举报
回复
自己定义一个过程,把不同的地方作为参数传入好了

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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