各位看官:小弟欲将dbnavigator控件中的按钮竖着排,不知哪位能写出详细的代码或者操作方式!我也查过以前的相关帖子,但不幸是可能是CSDN中将联接删除了,贴名有但无法打开!看了一些资料说是要改源文件,我也做了改动但是仍不能达到目的,小弟不想去下载相关的替代控件,请高手帮助解决!直接解决问题!

解决方案 »

  1.   

    我自己先顶一下!
       O
       |
    <==|==>
       |
       |
       |
      

  2.   

    简单的方法
    底层一个 PANLE 上面一个dbnavigator一个按钮 这样可以解决你的问题
    只是 控件比较多了
      

  3.   

    从TDBNavigator重新继承一个,重新实现它的InitButtons方法
      

  4.   

    使用多个DBNavigator,每个DBNavigator只显示1个按钮
      

  5.   

    procedure TDBNavigator.InitButtons;
    var
      I: TNavigateBtn;
      Btn: TNavButton;
      X: Integer;
      ResName: string;
    begin
      MinBtnSize := Point(20, 18);
      X := 0;
      for I := Low(Buttons) to High(Buttons) do
      begin
        Btn := TNavButton.Create (Self);
        Btn.Flat := Flat;
        Btn.Index := I;
        Btn.Visible := I in FVisibleButtons;
        Btn.Enabled := True;
        Btn.SetBounds (X, 0, MinBtnSize.X, MinBtnSize.Y);//
        //只要在这里改就可以了
        //Btn.SetBounds (0, HERE, MinBtnSize.X, MinBtnSize.Y);//
        FmtStr(ResName, 'dbn_%s', [BtnTypeName[I]]);
        Btn.Glyph.LoadFromResourceName(HInstance, ResName);
        Btn.NumGlyphs := 2;
        Btn.Enabled := False;
        Btn.Enabled := True;
        Btn.OnClick := ClickHandler;
        Btn.OnMouseDown := BtnMouseDown;
        Btn.Parent := Self;
        Buttons[I] := Btn;
        X := X + MinBtnSize.X;
      end;
      Buttons[nbPrior].NavStyle := Buttons[nbPrior].NavStyle + [nsAllowTimer];
      Buttons[nbNext].NavStyle  := Buttons[nbNext].NavStyle + [nsAllowTimer];
    end;
      

  6.   

    还有后面那句也要改
    Y:=Y+Minbtnsize.Y;把原来那句干掉
      

  7.   

    要是能写下来!可以发到[email protected]谢谢!
      

  8.   

    好了,我把控件给你做好了。http://www.incom.com.cn/download/mydbnag.zip要是需要源码在跟我联系吧。
      

  9.   

    感谢 minercxy(Codewhy) 帮助!我将另开200分表示感谢!