把DBImage放在TScrollBox里行不行

解决方案 »

  1.   

    对,应该把DBImage放在TscrollBox里边
      

  2.   

    哦,老达摩,上次我还没给你加分,现在马上去加。然后试把DBImage放在TScrollBox里
      

  3.   

    是没法滚动,偶以为跟TImage一样
      

  4.   

    可以在DataSet的AfterScroll加上这一段,
    with DBImage1 do
        SetBounds(Left, Top, Picture.Width, Picture.Height);如果图片都一样大设置一次把就,免得哪次都调用SetBounds另外把DBImage1的BorderStyle设为bsNone会更象些
    呵呵
      

  5.   

    To:八牛先生, 如何用DBImage读取Access/SQLServer的图形记录? E_mail: [email protected], Thanks you!
      

  6.   

    谢谢老达摩,问题是我的dataset放在datamoudle中,另有窗体继承自该窗体,如果将代码写在datamoudle中,则继承后的窗体移动记录时会出错。
      

  7.   

    想办法了。
    你可以在Form的OnActivate事件中把DataSet.AfterScroll的处理接管,在OnDeactivate事件中还原。如:type
      TForm1 = class(TForm)
      private
        FOldScrollHandler: TDataSetNotifyEvent;
        procedure DoDataSetScroll(DataSet: TDataSet);
        procedure FormDeactivate(Sender: TObject);
        procedure FormActivate(Sender: TObject);procedure TForm1.DoDataSetScroll(DataSet: TDataSet);
    begin
      with DBImage1 do // 对不起,这一句照搬了老达摩的代码
        SetBounds(Left, Top, Picture.Width, Picture.Height);
    end;procedure TForm1.FormActivate(Sender: TObject);
    begin
      FOldScrollHandler := FTable1.AfterScroll;
    end;
    procedure TForm1.FormDeactivate(Sender: TObject);
    begin
      FTable1.AfterScroll := FOldScrollHandler;
    end;
      

  8.   

    To:simonvc(阿宏),给你的Email退回来了,其实很简单,象dbedit一样用就可以了。