关于stringgrid得问题!进来看看!

milerzhang 2003-08-20 02:49:30
在stringgrid中光标都停在每一格的左边,那可不可使光标在每一格的右边,文字从
右边输起!随便也问一下想在中间怎么办?
可不可以改变某一列的背景颜色!或者改变某一列边上的那条列线的颜色也可以!
帮帮忙?急呀!谢谢各位了!
...全文
55 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
h_x_k 2003-09-04
  • 打赏
  • 举报
回复
windindance 2003-09-04
  • 打赏
  • 举报
回复
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
if ACol=2 then
stringgrid1.Options := stringgrid1.Options - [goEditing, goAlwaysShowEditor]
else
stringgrid1.Options := stringgrid1.Options + [goEditing, goAlwaysShowEditor]
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
stringgrid1.defaultdrawing := false;
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
with stringgrid1 do
begin
canvas.Pen.Color := clRed;
canvas.MoveTo(rect.Right, rect.Top);
canvas.LineTo(rect.Right, rect.Bottom);
canvas.LineTo(rect.Left, rect.Bottom);

canvas.TextOut(rect.left, rect.top, cells[acol, arow]);
end;
end;

下次提问前先查查资料。
大富翁离线包不错。
http://jp.njuct.edu.cn/crystal/delphibbs.htm
milerzhang 2003-09-03
  • 打赏
  • 举报
回复
如果要使stringgrid里的某一列变成只读,有没有可能?
如果有就请教教小弟!
milerzhang 2003-09-02
  • 打赏
  • 举报
回复
要自己画,那可不可以举一个例子呀!
谢谢各位了!不甚感激!
milerzhang 2003-08-25
  • 打赏
  • 举报
回复
我在另一过程调用StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);这个过程!
如:StringGrid2DrawCell(Sender, ACol, ARow,Rect, State);
可程序运行时出错,信息是ACol没有定义!
这是为什么呀?
milerzhang 2003-08-25
  • 打赏
  • 举报
回复
我在另一个过程里调用stringgrid2.DrawCell过程!
如:StringGrid2DrawCell(Sender, ACol, ARow,Rect,State);
可运行时出错,信息是ACol没有定义!
这是为什么呀?
windindance 2003-08-25
  • 打赏
  • 举报
回复
列线的颜色是不可能被改变的。
除非你设置为不要列线,然后自己在该事件中自己画线。
milerzhang 2003-08-25
  • 打赏
  • 举报
回复
过程调用的问题已解决!
但在OnDrawCell事件里,怎么写才可以改变某一列边上那条列线的颜色?各位帮帮忙吧!

byctiy 2003-08-25
  • 打赏
  • 举报
回复
关注
windindance 2003-08-22
  • 打赏
  • 举报
回复
居右显示也是awen16862的方法呀
DrawText(StringGrid1.Canvas.Handle,PChar(StringGrid1.Cells[ACol,ARow]),
Length(StringGrid1.Cells[ACol,ARow]),RC,DT_RIGHT or DT_VCENTER or DT_SINGLELINE);
viaboy 2003-08-22
  • 打赏
  • 举报
回复
up
milerzhang 2003-08-22
  • 打赏
  • 举报
回复
如果每行输入的字符都不一样长哈怎么办?还是有没办法使光标放在右边比较!有没人知道呀?
在stringgrid中的OnDrawCell要怎么写?才能改变stringgrid的某一列的颜色?或者改变边上的那条列线的颜色?举个例子也可以!谢谢各位了!急呀!
milerzhang 2003-08-22
  • 打赏
  • 举报
回复
某一列的颜色(边上的那条列线的颜色)?
milerzhang 2003-08-21
  • 打赏
  • 举报
回复
有没有居右显示的呀?颜色怎么变呀?各位帮帮忙啦!谢谢了!
moeryang 2003-08-21
  • 打赏
  • 举报
回复
你在左边加空格就行拉
比如
00
000
00000
不就居右了
StringGrid每个单元格的宽度是固定的嘛!
milerzhang 2003-08-21
  • 打赏
  • 举报
回复
有没人知道的呀?
awen16862 2003-08-20
  • 打赏
  • 举报
回复
在stringgrid中居中显示文字
Rect: TRect; State: TGridDrawState);
var
RC : TRect;
begin
RC := Rect;
StringGrid1.Canvas.FillRect(Rect);
DrawText(StringGrid1.Canvas.Handle,PChar(StringGrid1.Cells[ACol,ARow]),
Length(StringGrid1.Cells[ACol,ARow]),RC,DT_CENTER or DT_VCENTER or DT_SINGLELINE);
end;

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧