如题所示:怎么让dbgrid控件旋转90度?

解决方案 »

  1.   

    代碼比較煩瑣, 你要重載 procedure TCustomGrid.Paint; 修改其中的實現
      

  2.   

    比较麻烦不如用stringGride代替算了
      

  3.   

    >>把显示器横过来:)
    有創意, 有個軟件, 可以將的的屏幕轉任意角度
      

  4.   

    重载TCustomGrid.Paint;函数,自己来绘制。
    不过这想法有点奇怪啊,你有客户脖子有毛病,非得横着?
      

  5.   

    图片旋转可以的
     var
      I, J: Integer;
      BmpS, BmpD: TBitmap;
    begin
      BmpS := TBitmap.Create;
      BmpD := TBitmap.Create;
      BmpS.Assign(Image1.Picture.Graphic);
      BmpD.Height := Image1.Picture.Width;
      BmpD.Width := Image1.Picture.Height;
      for I := 0 to Image1.Height do
        for J := 0 to Image1.Width do
        begin
          if CheckBox1.Checked then  //顺时针
          BmpD.Canvas.Pixels[(-I + Image1.Height), J] := BmpS.Canvas.Pixels[J, I]
          else                       //逆时针
          BmpD.Canvas.Pixels[I, Image1.Width- J] := BmpS.Canvas.Pixels[J, I];
        end;
      Image1.Picture.Bitmap.Assign(BmpD); 
    end;
    //dbgrid为什么要转啊
      

  6.   

    改变一下Canvas的设备坐标映射模式就行了(就是把X轴和Y轴互换)
      

  7.   

    回复人: aiirii(ari-爱的眼睛) ( ) 信誉:372  2004-10-15 15:20:00  得分: 0     >>把显示器横过来:)
    有創意, 有個軟件, 可以將的的屏幕轉任意角度
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~还可以把脑袋横过来 :)
      

  8.   

    用TStringGrid做起来方便一些
    技术本身不难
    主要是烦
      

  9.   

    呵呵
    如果真的有那想法的干吗不用DXGRID呢?我发觉大家想象力太丰富了
      

  10.   

    我在2000年的时候用过一个这样的控件,就是你要求的这个,但是现在忘了名字了,在网上应该还可以查得到的,可以去delphi深度历险看看,我记得好像是从那里下载的。
      

  11.   

    可能把DataSource转一下简单些。
      

  12.   

    可不可以 用JavaScript 在前台来控制呢? 只是建议,因为前台可以
      

  13.   

    非常感谢这么多位网友的支持!
    我可是没有向Joker2k(流星蝴蝶) 所说的,故意发一个无聊的帖子以后,在一旁偷笑!
    当然,我的客户也没有脖子有问题的现象出现,所以,把显示器即使转过来也不会说完成这项任务,同时,我想如果我们倒立了之后看到的东西,真的是倒立的话,不是视网膜没进化好,就是真的那个本体就是倒立的!哈哈!!!!
      其实,我要求dbgrid转向,目的很简单,我举一个类似的例子!我们平常经常遇到这种现象:如果我们打开一个网站的主页比如sina,它的内容很多,那么满屏显示不了,当然会用鼠标点击竖条拉动,我们是不是觉得很正常?但是,如果它所有的内容都是横向的,你用鼠标点击横条的话,我们会觉得这个网站很怪,或者说,不舒服!dbgrid也是,一个表的字段很多的时候,就会横向出很多,用户要横拉,但是,如果竖起来,给dbgrid象吃了"伟哥"一样的话,用户感觉好像没这么讨厌这些数据了!虽然它一点都没少,这也是心理学哟?所以,我就象让我的dbgrid吃"伟哥",就这么简单!
      

  14.   

    我也在试验重写TCustomGrid.Paint,真的是很麻烦,现在只是在研究,没有开始动手改!大家如果有操作的话,请给我支持,给我发信息也可以!
      

  15.   

    就为这个啊?!不能用TDBCtrlGrid吗?对楼主的表达能力真是有如滔滔江水......
      

  16.   

    主意很好没有做不到 只有想不到建议 楼主研究一下 Paint 函数 应该可以实现
      

  17.   

    这是我自己用的方法(STRINGGRID)
    你可以参考一下。procedure Tsample.report(QueryName:TQuery;Statment:String;Target:TStringGrid);
    var
      s:array[0..40] of string;
      col,lin,k,num:integer; //col和lin分别表示列和行,num记录字段数
    begin
      //QueryName.Close
      QueryName.SQL.Clear;
      QueryName.SQL.Text:=Statment;
      QueryName.Open;  num:=QueryName.FieldCount;
      Target.FixedRows:=0;
      Target.FixedCols:=1;
      Target.RowCount:=num; //确定行数
      for k:=0 to num-1 do
        Target.Cells[0,k]:= QueryName.Fields[k].FieldName; //添加字段标题
      k:= Target.ColCount;   //列数,初始值为 2
      QueryName.MoveBy(QueryName.RecordCount-1); //将指针移到最新那条记录的位置
      for lin:=0 to num-1 do
         Target.Cells[k-1,lin]:=QueryName.Fields[lin].AsString; //写入数据
      Target.ColCount:=k+1; //列数加 1
      Target.Anchors:=Target.Anchors;
    end;
    如果你直接用的话,得把列值的初始值设为 2
      

  18.   

    好了,我找到了,留下联系方式,我发给你,是delphi4版本的,我修改了一下,delphi6也可以用了!
      

  19.   

    zhboy(孔方兄) 我要一份,我的Delphi是D7的(帮我修改成D7的行吗)。
    [email protected]
    多谢了……
      

  20.   

    zhboy(孔方兄) 我要一份,我的Delphi是D7的(帮我修改成D7的行吗)。
    [email protected]
    先谢了!!!!
      

  21.   

    zhboy(孔方兄) 可否资源共享,给偶一份[email protected]比楼上的先谢了!!!
      

  22.   

    我以前就遇到过类似的:
    让PageContro的标签在左边显示设置Style是可以的,但是这样的话标签就竖起来了,但字却是卧倒的,看起来不方便,能否让标签在左侧时标签也是横着的,或者标签竖的但里面的字又不卧倒,结果我就不懂了,真想找到答案啊。
      

  23.   

    本人还是认为有和SQL写语句变成交叉表,那样行变列,列变成行为好,请不要在前端来做什么文章
      

  24.   

    那者能说明你没有明白楼主的意思,他是要在左面竖着显示Title,所有的字段名都在左面从上到下排列,以后的每一列都是一条记录。
      

  25.   

    再次感谢各位!这个帖子我会暂时不结贴,如果zhboy(孔方兄)把代码公布给我,我进行最后调试运行成功之后,当然,在zhboy(孔方兄)同意的条件下,我把这个源码贴出来给大家共享!同时,再发贴来感谢各位同仁的支持!
      

  26.   

    由于源码太长,在这里贴出来不方便查看,也不方便粘贴,所以只能作为一篇文章来发布!
    http://blog.csdn.net/setfocus/archive/2004/10/17/140161.aspx
    我不知道CSDN是否需要审核!现在是这个地址!
      

  27.   

    非常感谢各位鼎力支持,Setfocus感谢各位!给分了!另外:另开200F给zhboy(孔方兄)
      

  28.   

    在Infopower4000中有个数据感知控件就是转90度,显示单条数据记录。不知是否是楼主要的。
    用了PL/SQL DEVELOPER,它的Grid做的不错,可以随时转换,控件是用的TopStrGrid,估计有点代码量。