首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎么识别不同类别中的相同定义

2012-02-14 
如何识别不同类别中的相同定义delphidbnavigator中自定义了TNavigateBtn(nbFirst,nbPrior,nbNext,nbLast,

如何识别不同类别中的相同定义
delphi   dbnavigator中自定义了     TNavigateBtn   =   (nbFirst,   nbPrior,   nbNext,   nbLast,
                                    nbInsert,   nbDelete,   nbEdit,   nbPost,   nbCancel,   nbRefresh);
我自己作了一个dbnavigator类,     TmyNavigateBtn   =   (nbInsert,nbfind,nbEdit,nbDelete,nbprint,nbFirst,   nbPrior,   nbNext,   nbLast,
                                  nbRefresh,   nbcopy,nbPost,   nbCancel,   nbcheck,nbclose);

在表单中的myNavigateBtn1click事件中,添加以下代码:
procedure   tform1.myDBNavigator1Click(Sender:   TObject;
    Button:   TmyNavigateBtn);
begin
if   button   in   [nbpost,nbdelete,nbcancel]   then
....
end;
系统提示说:incompatible   types: 'TNavigateBtn   and   TmyNavigateBtn '

最直接的解决的方法是把TmyNavigateBtn中的定义名称改一下,但是工作量太大了,有没有更好的方法呢?请教高手...
谢谢了.

[解决办法]
反过来也是一样:

uses DBCtrls;

type
TmyNavigateBtn = (nbInsert, nbfind, nbEdit, nbDelete, nbprint, nbFirst,
nbPrior, nbNext, nbLast, nbRefresh, nbcopy, nbPost, nbCancel, nbCheck,
nbClose);

procedure TForm1.Button1Click(Sender: TObject);
var
Button: TNavigateBtn;
begin
if Button in [DBCtrls.nbPost, DBCtrls.nbDelete, DBCtrls.nbCancel] then
end;
[解决办法]
zswang(伴水清清)(专家门诊清洁工)

加在dbctrls中,有编译的问题,一般情况下最好不要动系统的pas

其实有个最简单的解决方法:

在uses 中,你把dbctrls放在你的类的前面就可以了,后面的类中的定义会把前面的类的定义覆盖掉.

呵呵,一个小窍门.

热点排行