当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 呵呵,,谢谢啊`! ......
    摘要: 都说delphi5开发人员指南好呀!今天看到了,厚厚的一本,看了一下全是全.可有很多底层的东西,有关应用的较少,且不说效率问题,真的很适合应用吗?怀疑 ......


如何从Delphi控件转成BCB的控件

我一个朋友近日用Delphi写了一个控件   就两个文件一个控件源文件一个是   *.dcu文件  
   
  我想用在bcb下   但不是太懂Object   Pascal   想问问高手如何   将这个控件转成BCB的控件  
   
  ========PAS的源文件如下==========  
   
  unit   DBDateTimePicker;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Classes,   Graphics,   Controls,   Forms,   Dialogs,  
      ComCtrls,   DB,   DBCtrls;  
   
  type  
      TDBDateTimePicker   =   class(TDateTimePicker)  
      private  
          {   Private   declarations   }  
          FAllowChange:   Boolean;  
          FDataLink:   TFieldDataLink;  
          function   GetDataField:   string;  
          function   GetDataSource:   TDataSource;  
          procedure   SetDataField(const   Value:   string);  
          procedure   SetDataSource(Value:   TDataSource);  
          procedure   DataChange(Sender:   TObject);  
          procedure   Change(Sender:   TObject);  
          procedure   CMExit(var   Message:   TWMNoParams);   message   CM_EXIT;  
      protected  
          {   Protected   declarations   }  
      public  
          {   Public   declarations   }  
          constructor   Create(Aowner:   TComponent);   override;  
          destructor   Destroy;   override;  
      published  
          {   Published   declarations   }  
          property   DataField:   string   read   GetDataField   write   SetDataField;  
          property   DataSource:   TDataSource   read   GetDataSource   write   SetDataSource;  
      end;  
   
  procedure   Register;  
   
  implementation  
   
  constructor   TDBDateTimePicker.Create(AOwner:   TComponent);  
  begin  
        inherited   Create(AOwner);  
        FDataLink:=TFieldDataLink.Create;  
        FDataLink.OnDataChange:=DataChange;  
        OnChange:=Change;  
        FAllowChange:=True;  
  end;  
   
  destructor   TDBDateTimePicker.Destroy;  
  begin  
        FDataLink.OnDataChange:=nil;  
        FDataLink.Free;  
        inherited   Destroy;  
  end;  
   
  procedure   TDBDateTimePicker.DataChange(Sender:   TObject);  
  begin  
        if   FDataLink.Field=nil   then   Self.Date:=0  
        else  
              if   FAllowChange   then   Self.Date:=FDataLink.Field.AsDateTime;  
  end;  
   
  procedure   TDBDateTimePicker.Change(Sender:   TObject);  
  begin  
        with   FDataLink   do   begin  
              FAllowChange:=False;  
              if   not   editing   then   Edit;  
        end;  
        FDatalink.Field.AsDateTime:=self.Date;  
        FAllowChange:=True;  
  end;  
   
  procedure   TDBDateTimePicker.CMExit(var   Message:   TWMNoParams);  
  begin  
        try  
              FDataLink.UpdateRecord;  
        except  
              on   Exception   do   SetFocus;  
        end;  
        inherited;  
  end;  
   
  function   TDBDateTimePicker.GetDataField:   string;  
  begin  
        Result:=FDataLink.FieldName;  
  end;  
   
  function   TDBDateTimePicker.GetDataSource:   TDataSource;  
  begin  
        Result:=FDataLink.DataSource;  
  end;  
   
  procedure   TDBDateTimePicker.SetDataField(const   Value:   string);  
  begin  
        FDataLink.FieldName:=Value;  
  end;  
   
  procedure   TDBDateTimePicker.SetDataSource(Value:   TDataSource);  
  begin  
        FDataLink.DataSource:=Value;  
  end;  
   
  procedure   Register;  
  begin  
      RegisterComponents(Data   Controls,   [TDBDateTimePicker]);  
  end;  
   
  end.  
 

NO.1   作者: yyy1020

新建一Package,存盘,把这个PAS文件拷到同一目录下,  
  ADD这个PAS文件。  
  安装。OK!  
   
  http://www.csdn.net/cnshare/soft/11/11463.shtm


    摘要: 就是防止同一用户名重复登陆! ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE