社区
VCL组件使用和开发
帖子详情
StringGrid显示数据库表中的数据时,如何设置字段的对齐方式?
sxmonly
2004-12-21 12:51:09
如题。
...全文
124
4
打赏
收藏
StringGrid显示数据库表中的数据时,如何设置字段的对齐方式?
如题。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
156095582
2004-12-21
打赏
举报
回复
在其OnDrawCell事件中进行重画
落伍的小农
2004-12-21
打赏
举报
回复
1.重画
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
if(State.Contains(gdSelected))
{
String str="";
this->StringGrid1->Canvas->TextRect(Rect, Rect.left, Rect.top, str);
DrawText(StringGrid1->Canvas->Handle, StringGrid1->Cells[ACol][ARow].c_str(), -1, (RECT*) &Rect, DT_SINGLELINE | DT_VCENTER | DT_CENTER);
}
}
2.StrintGrid好象不能象DBGRID一样直接与数据集相连,应该要自己写代码。
skamy
2004-12-21
打赏
举报
回复
StrintGrid如何与数据集相连??
sxmonly
2004-12-21
打赏
举报
回复
假如我要居中的话,能否给出详细的实例
String
Grid
实例 单元格变色等
String
Grid
实例 单元格变色等 学好DELPHI 就是学好这个控件 个人感觉
Delphi xe FireMonkey FMX Sting
Grid
点击表头排序
Delphi xe FireMonkey FMX Sting
Grid
点击表头排序
Imp
String
Grid
(增强
String
Grid
控件)
Imp
String
Grid
(增强
String
Grid
控件) Imp
String
Grid
(增强
String
Grid
控件)
reprint打印控件(打印 datasource,db
grid
,
string
grid
)
reprint 使用说明 本人长期使用delphi做
数据
库
的开发,报表控件使用Quickrpt,在打印上经常遇到一些问题,于是自己经常编写一部分打印的程序,经过总结开发了这个控件。 本控件可打印 datasource,db
grid
,
string
grid
. 一 、控件属性: 1、colstitle
设置
报表的列标题属性 (1)alignment 列标题
对齐
方式
。 (2)font 列标题字体 (3)print
设置
是否打印列标题 (4)rowspace 列标题行的高度 2、datasource 选择要打印的datasource 3、db
grid
选择要打印的db
grid
4、
string
grid
选择要打印的
string
grid
5、detail
设置
要打印的明细
数据
属性 (1)arrange
设置
明细
字段
排列方向 Horizontal 横向打印(默认的一般打印) Vertical 竖向打印(
字段
竖向排列适合打印
字段
内容较长的报表如“会议纪录”) (2)aotureturn 打印明细
字段
时
,如果
字段
超过列的宽度是否允许自动换行 (3)colsline
设置
竖线属性引用tpen类 (4)footer
设置
明细尾 (5)frame
设置
明细边框属性引用tpen类 (6)head
设置
明细头同footer (7)rowsline
设置
横线属性引用tpen类 (8)rowspace
设置
明细行的高度 (9)top 明细与标题的距离 6、page
设置
纸张的上下左右边距 7、pagefooter
设置
页脚同明细尾 8、pageheader
设置
页眉同页脚 9、printobject 选择要打印的对象 (datasource 、db
grid
、
string
grid
) 10、title
设置
标题类页眉、页脚 二 、控件方法: (1) preview 预览 (2) print 打印 (3) SaveToFile() 保存为报表文件 (4) SaveToStream() 保存为流(然后就可把整个报表存到
数据
库
了很方便哦! ~_~) (5) PrintFile() 打印报表文件 (6) PrintStream() 打印流(流的
数据
库
存取就不用多说了吧) (7) PreviewFile() 预览文件 (8) PreviewStream() 预览流 (9) OptionToStream() 报表的属性保存为流 (10) OptionFromStream() 从流中得到报表属性 三、 控件事件: AfterPrint 打印后 BeforePrint 打印前 (本来很多事件,但没有预览,后来加上预览以及一些方法后实现很困难就去掉了!) 四、注意事项 (1) text 属性,输入“¦;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#¦;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;”打印页码值,如果想打印页码可输入“第¦;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#¦;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;页” 输入“¦;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;RecordCount¦;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;”打印 记录数 (2) 不同的打印机,打印和预览效果可能有一点点不同(保证
数据
打印完全正确一致)。本人用一台针式和一台激光打印机做测试,开始差别较大后经过调试基本一致,不知其他打印机如何。 就这些个吧基本满足了我的软件开发需要,解决了很多问题,关键是做报表省了很大力气,当然了很复杂的报表还是要其它报表控件来解决。如果有其他问题或好的建议可与我联系。 程序设计:吴进昊 E-mail :jinhaowu@hotmail.com qq :54254770 2003.01.03
RePrint表格打印控件(打印 datasource,db
grid
,
string
grid
)
功能更加强劲,增加多行表头的功能,新增更多事件,加强了打印期间对报表样式 的控制,可随意改变打印内容。 reprint 使用说明 本控件可打印 datasource,db
grid
,
string
grid
. 一 、控件属性: 1、colstitle
设置
报表的列标题属性 (1) Print:boolean;;是否打印 (2) Font:tfont;;字体 (3) Rowsline:tpen;;横线样式 (4) Colsline:tpen;;竖线样式 (5) Alignment:talignment;;
对齐
方式
(6) Rowspace:integer;;行间距 (7) EveryPage:boolean;;是否每页打印 (8) EveryRow:boolean;;是否每行打印 (9) titlearray:t
string
s;;怎加标题组 (使用方法见附带demo) (10) rows:integer;;
设置
默认列标题打印行数 2、datasource 绑定 datasource 3、db
grid
绑定 db
grid
4、
string
grid
绑定
string
grid
PrintObject 选择打印的对象(datasource 、db
grid
、
string
grid
) 5、pagefooter 页脚 pageheader 页眉 (1) Text:
string
;;内容 (2) Font:tfont;;字体 (3) Print:boolean;;是否打印 (4) Alignment:talignment;;
对齐
方式
6、detail
设置
要打印的明细
数据
属性 (1)arrange
设置
明细
字段
排列方向 Horizontal 横向打印(默认的一般打印) Vertical 竖向打印(
字段
竖向排列适合打印
字段
内容较长的报表如“会议纪录”) (2)aotureturn 打印明细
字段
时
,如果
字段
超过列的宽度是否允许自动换行 (3)colsline
设置
竖线属性引用tpen类 (4)footer
设置
明细尾 (
设置
同pagefooter 页脚 pageheader 页眉) (5)frame
设置
明细边框属性引用tpen类 (6)head
设置
明细头(
设置
同pagefooter 页脚 pageheader 页眉) (7)rowsline
设置
横线属性引用tpen类 (8)rowspace
设置
明细行的高度 (9)top 明细与标题的距离 (10)Alignment
对齐
方式
7、page
设置
纸张 (1) leftmargin:real;;左边距 (2) rightmargin:real;;右边距 (3) topmargin:real;;顶边距 (4) bottommargin:real;;底边距 (5) pagesize:TPageSize;;纸张类型 (6) Height:real;;高度 (7) width:real;;宽度 (8) Orientation:TPrinterOrientation;;打印方向 注意:
设置
纸张的宽度和高度需把pagesize设为Custom 8、title
设置
标题 (1) Print:boolean;; 是否打印 (2) Text:t
string
s;; 内容可
设置
多行 (3) Font:tfont;;字体 (4) Alignment:talignment;;
对齐
方式
(5) top:integer;; 距纸张顶部距离 (6) Rowspace:integer;;行距 (7) EveryPage:boolean;;是否每页打印 二 、控件方法: (1) preview 预览 (2) print 打印 (3) SaveToFile() 保存为报表文件 (4) SaveToStream() 保存为流(然后就可把整个报表存到
数据
库
了很方便哦! ~_~) (5) PrintFile() 打印报表文件 (6) PrintStream() 打印流(流的
数据
库
存取就不用多说了吧) (7) PreviewFile() 预览文件 (8) PreviewStream() 预览流 (9) OptionToStream() 报表的属性保存为流 (10) OptionFromStream() 从流中得到报表属性 (11) OptionPost()在打印期间改变了报表属性,要想立即生效调用此方法。 (12) PaintText(Text:
string
) 覆盖原有打印的字符,一般在能返回当前打印的内容的事件中使用。(见控件事件) 三、 控件事件: (1) AfterPrint 打印后 (2) BeforePrint 打印前 (3) OnPrintDetail(RecordNumber: Integer)在打印每一栏明细前触发此事件, 返回参数:RecordNumber返回当前打印行数。 (4) OnPrintDetailField(RecordNumber,FieldIndex: Integer;; FieldText:
String
);; 在打印明细的每个
字段
都会触发此事件。 返回参数:RecordNumber返回当前打印行数。 FieldIndex
字段
索引 FieldText
字段
内容 (5) OnPrintTitle(Row: Integer;; Text:
String
)打印每行标题都会触发此事件。 返回参数:row当前打印的行 Text当前打印的内容 (6) OnPrintColsTitleField(Row, FieldIndex: Integer;; FieldName:
String
);; 打印列标题
字段
时
触发此事件 返回参数:row当前打印的行 FieldIndex当前打印的
字段
索引 FieldName当前打印的
字段
名称 (7) OnPrintColsTitle(Row: Integer) 打印每行列标题
时
触发此事件 返回参数:row当前打印的行 四、注意事项 (1) text 属性,输入“¦#¦”打印页码值,如果想打印页码可输入“第¦#¦页” 输入“¦RecordCount¦”打印 记录数 (2) 不同的打印机,打印和预览效果可能有一点点不同(保证
数据
打印完全正确一致)。本人用一台针式和一台激光打印机做测试, 开始差别较大后经过调试基本一致,不知其他打印机如何。 (3) 纸张大小以及横向、竖向自动适应系统默认也可
设置
。 (4) 各列的宽度按比例,适应纸张宽度打印。 程序设计:吴进昊 E-mail :jinhaowu@hotmail.com qq :54254770 2003.01.03
VCL组件使用和开发
604
社区成员
13,457
社区内容
发帖
与我相关
我的任务
VCL组件使用和开发
C++ Builder VCL组件使用和开发
复制链接
扫一扫
分享
社区描述
C++ Builder VCL组件使用和开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章