如何识别不同类别中的相同定义
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放在你的类的前面就可以了,后面的类中的定义会把前面的类的定义覆盖掉.
呵呵,一个小窍门.