我想问的是: 比如一个3行3列的表格, stringGrid或是什么的吧, 当较多的文字填充到一个格子里,比如第二行,第二列的格子里, 想让那个格子随着文字的多少自动撑起来, 就是把文字都显示出来,让我们能一眼看见. 有没有这种控件, 或是对现有的控件怎么稍微改造一下呀??
解决方案 »
- 1.高手请教如何在adoconnection,或者是adoquery在写入数据的时候,如果取消,如何让事务回滚,2.我在使用quickreport的时候,我想显示六条记
- 有关树节点上添加背景色
- 字符串提取问题!在线给分!!!
- 小弟跪求菜鸟级问题
- 一个小问题
- Delphi中如何将已经做好的两个工程合并成一个工程,最终只有一个可执行程序??
- 文本框中的光标问题,在线等待......
- 如何在Delphi中实现鼠标的模拟点击
- ??使用TDBChart的問題??急
- 可不可以用scrollbar来控制显示超出panel范围的控件
- 谁能用delphi的知识讲一下foxmail的写html邮件的原理???
- 我想把paintbox.canvas作为参数传递,为何不行?
相当于程序实现了ie的html渲染器的表格的部分功能
ExpressVerticalGrid 3.0.1
控件是cx控件吧,他可以实现上面的需求吗?
或者ExpressPrinting System 3.0.2
ExpressVerticalGrid 3.0.1
ExpressQuantumTreeList 4.0.1
ExpressLayout Control 1.1.10
ExpressDBTree 1.3.2
ExpressMemData 1.8.2
ExpressOrgChart 1.3.2
ExpressFlowChart 1.3.2
ExpressPrinting System 2.5.2
ExpressSpreadSheet 1.1.10
ExpressWeb Framework 1.6
ExpressQuantumGrid 4.5.2
ExpressNavBar 1.2.1
ExpressPageControl 2.1.2
ExpressBars 5.1.2 哪个能实现上面的需求呀?
procedure TFrmInterFace.YxAdvSGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
s:string;
q:Integer;
DrawRect:TRect;
begin
S:=YxAdvSGrid1.Cells[ACol,ARow];
if (Length(S)>0)Then
begin
DrawRect:=Rect;
DrawText(YxAdvSGrid1.Canvas.Handle,PChar(S), Length(PChar(S)),DrawRect,DT_CALCRECT or DT_WORDBREAK or DT_LEFT);
If (DrawRect.Bottom-DrawRect.Top) > YxAdvSGrid1.RowHeights[ARow] Then
YxAdvSGrid1.RowHeights[ARow]:=DrawRect.Bottom-DrawRect.Top
else
begin
DrawRect.Right:=Rect.Right;
YxAdvSGrid1.Canvas.FillRect(Rect);
DrawText(YxAdvSGrid1.canvas.handle,PChar(S), Length(PChar(S)),DrawRect,dt_wordbreak or dt_left);
end;
end;
end;易用性代码:procedure TYxAdvSGrid.WMLButtonDown(var Msg: TWMLButtonDown);
if aRow<>0 then
begin
if GetComponentByACol(aCol,Component)=True then
begin
if (Component is TTntRichEdit) then
begin
if (Component as TTntRichEdit) <>NIL then
begin
(Component as TTntRichEdit).BringToFront;
(Component as TTntRichEdit).SetFocus;
end;
end;
end;
end;