模块化编写代码

在公司,很多编程都需要与代码挂钩,很多都是业务逻辑的实现。这两天需要给很多功能的同一个控件添加模糊查询。需要添加一段函数代码。

这里先放上我自己写的代码。

procedure TCT_DDZY_LZXDJLXX.InputCZXX();
var
    data : ZYJ_CZXZ.TCZData;
begin
    if (czlistbox.ItemIndex<0) and (czlistbox.Items.Count>0) then
    begin
        czlistbox.ItemIndex := 0;
    end;
    if czlistbox.ItemIndex<0 then
    begin
        Exit;
    end;

    czPanel.Visible := False;

    data := ZYJ_CZXZ.TCZData(czlistbox.Items.Objects[czlistbox.ItemIndex]);
    DataSetBrokerXX_DDZY_LZXDJLB.DataSet.Edit;
    DataSetBrokerXX_DDZY_LZXDJLB.DataSet.FieldByName('BDZGUID').AsString :=data.czid;
    DataSetBrokerXX_DDZY_LZXDJLB.DataSet.FieldByName('BDZ').AsString :=data.czbm;
    DataSetBrokerXX_DDZY_LZXDJLB.DataSet.Post;
end;

下面看看模块化函数的编写方法。

procedure TCT_DDZY_LZXDJLXX.InputCZXX();
var
    ds : TDataSet;
    data : ZYJ_CZXZ.TCZData;
begin
    ds := DataSetBrokerXX_DDZY_LZXDJLB.DataSet;
    if (czlistbox.ItemIndex<0) and (czlistbox.Items.Count>0) then
    begin
        czlistbox.ItemIndex := 0;
    end;
    if czlistbox.ItemIndex<0 then
    begin
        Exit;
    end;

    czPanel.Visible := False;

    data := ZYJ_CZXZ.TCZData(czlistbox.Items.Objects[czlistbox.ItemIndex]);
    ds.Edit;
    ds.FieldByName('BDZGUID').AsString :=data.czid;
    ds.FieldByName('BDZ').AsString :=data.czbm;
    ds.Post;
end;

不知道你看上面两段函数看出了什么来了吗?

嗯,第二段定义了一个 TDataSet 类型的 ds ,然后把 DataSetBrokerXX_DDZY_LZXDJLB.DataSet 赋值给 ds ,这样,每次使用这个函数,都只要修改一次ds的赋值,这个函数就可以用于其他地方。

而我的写法,就需要修改下面所有 DataSetBrokerXX_DDZY_LZXDJLB.DataSet 为对应功能的 DataSet 。修改繁琐。以后写代码,为了方便,要学会如何编写模块化的函数,为了方便日后修改。

{ 发表评论? }

  1. 大智若鲁


    专业程序员

  2. iCyOMiK

    好吧,我想问,这是什么语言?

  3. zwwooooo

    难怪我感觉很熟悉,原来是delphi,pascal啊,久违了,也忘了

    • Microhu

      这里也可以碰见ZWWOOOOO….

  4. Guoy

    话说下面的Google SiteMap是127.0.0.1了

    • jiechic

      忘了改了,主题自定义没有用函数输出,变成这样了。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>