TAdvStringGrid控件使用技巧
2010-12-15 08:05:48 来源:WEB开发网核心提示:{ TPoint res; res = AdvStringGrid1->FindNext(); if ((res.x>=0) && (res.y>=0)) { AdvStringGrid1->Col=res.x; AdvStringGrid1->Row=res.y; } else Show
{
TPoint res;
res = AdvStringGrid1->FindNext();
if ((res.x>=0) && (res.y>=0))
{
AdvStringGrid1->Col=res.x;
AdvStringGrid1->Row=res.y;
}
else
ShowMessage("Text not found");
}
//----------
16.TAdvStringGrid:: Ints[int ACol][int ARow]以Integer类型的值来访问单元格,如果读取失败,会触发异常.
17.对特定单元格的对齐方式进行处理
添加TAdvStringGrid::OnGetAlignment事件处理句柄。
18.
(1).添加图标:TAdvStringGrid::AddIcon();
原型:void __fastcall AddIcon(int ACol, int ARow, Graphics::TIcon *aicon, TCellHAlign hal, TCellVAlign val)
(2).添加旋转字体:TAdvStringGrid:: AddRotated;
原型:void __fastcall AddRotated(int ACol, int ARow, short AAngle, AnsiString s);
(3).从ImageList中取出图象添加到单元格中:TAdvStringGrid:: AddImageIdx;
原型:void __fastcall AddImageIdx(int ACol, int ARow, int Aidx, TCellHAlign hal, TCellVAlign val);
参数Aidx为图片在ImageList中的索引.
(4).向单元格中添加位图:TAdvStringGrid:: AddBitmap;
原型:void __fastcall AddBitmap(int ACol, int ARow, Graphics::TBitmap *ABmp, bool Transparent, TCellHAlign hal, TCellVAlign val);
参数bool Transparent设置是否显示透明.
(5).自动添加编号:AutoNumberCol
TAdvStringGrid:: AutoNumberCol(int ACol)方法,对指定的列从1进行编号,不对Fixed行中的列编号;
用途:用于产生首列的自动编号。
(6).向单元格中添加多个图象:TAdvStringGrid::AddMultiImage
原型:void __fastcall AddMultiImage(int ACol, int ARow, int Dir, TCellHAlign
hal, TCellVAlign val);
事实上只是向系统声明一下,这个单元格将放置多个图象,图象的添加通过GridImages来添加。例如:
AdvStringGrid2->AddMultiImage(5,1,0,haBeforeText,vaCenter);
AdvStringGrid2->CellImages[5][1]->Add(0);
AdvStringGrid2->CellImages[5][1]->Add(1);
(7).如果TAdvStringGrid:: EnableHTML属性启用,那么,单元格中输入HTML源代码,它将以HTML格式显示出来,例如:
AdvStringGrid2->Cells[7][1]="Easy HTML
formatting";
AdvStringGrid2->Cells[7][2]="Including <IMG src=" "\x022" "idx:0" "\x022" ">
AdvStringGrid2->Cells[7][3]="Enjoy
----------
miniHTML";
AdvStringGrid2->Cells[7][4]="
AdvStringGrid2->Cells[7][5]="125 <SUP>9</SUP>/<SUB>16</SUB>";
这些内容在TAdvStringGrid中将以HTML格式显示出来。
(8).通过TAdvStringGrid:: RichEdit属性可以调用TAdvStringGrid的内置的RichEdit类,是一个RichEdit编辑器,可以使用它处理RTF格式文档,然后使用TAdvStringGrid::RichToCell方法写入单元格.
原型:void __fastcall RichToCell(int Col, int Row, Comctrls::TRichEdit *Richeditor);
可以把用TAdvStringGrid::RichEdit::Clear()把RichEdit清空,再重新添加内容,然后再添加到单元格中。
可以通过TAdvStringGrid::RichEdit::SelAttributes来调整RichEdit的格式。
(9).通过TAdvStringGrid:: AddProgress方法来在单元格中添加进度条
原型:void __fastcall AddProgress(int ACol, int ARow, Graphics::TColor FGColor, Graphics::TColor BKColor);
单元格的整数值就是当前进度值,可以使用TAdvStringGrid::Ints[col,row]来访问这个值。
(10).通过TAdvStringGrid::AddComment方法来添加注释。
原型:void __fastcall AddComment(int ACol, int ARow, AnsiString comment);
添加注释之后,会在单元格的右上角显示一个小的红色的三角号,例如:
AdvStringGrid2->AddComment(8,3,"This is a custom" "\x00D" "comment for this cell");
AdvStringGrid2->Cells[8][3]="Cell with
comment";
(11).通过TAdvStringGrid增强型的HTML语法解析,添加内部单元格之间的链接,例如:
AdvStringGrid2->Cells[8][4]=" AdvStringGrid2->Cells[8][5]=" (12).通过TAdvStringGrid:: AddButton来在单元格中添加按钮
原型:void __fastcall AddButton(int ACol, int ARow, int bw, int bh, AnsiString Caption, TCellHAlign hal, TCellVAlign val);
当添加的按钮被按下时,OnButtonClick事件被触发(?经测试,不能触该事件)。
19.在TAdvStringGrid::OnGetCellsColor()事件处理句柄中,可以对单元格的颜色和字体进行设置.
21.添加可收缩结点,外观上看起来类似于分组,
方法:
TAdvStringGrid::FixedCols=0;
TAdvStringGrid::FixedColWidth=20;
TAdvStringGrid::AddNode(2,4);
TAdvStringGrid::AddNode(7,2);
TAdvStringGrid::AddNode(13,4);
TAdvStringGrid::AddNode()方法原型:
void __fastcall AddNode(int ARow, int Span);第二个参数为分组的跨越度。
22.展开所有结点:TAdvStringGrid:: ExpandAll()方法
收缩所有结点:TAdvStringGrid:: ContractAll()方法
TAdvStringGrid::CellNode->NodeType=cnFlat;
TAdvStringGrid::CellNode->NodeType=cn3D;
TAdvStringGrid::CellNode->NodeType=cnGlyph;
以上三个属性设置StringGrid以结点的方式显示时的结点显示风格。
23.对TAdvStringGrid添加过滤
使用TAdvStringGrid中预定义的一种Filter类: TFilterData
例如:
TFilterData* fd;
AdvStringGrid3->Filter->Clear();
fd = AdvStringGrid3->Filter->Add();
fd->Condition = ComboBox1->Items->Strings[ComboBox1->ItemIndex];
fd->Column = 1;
fd = AdvStringGrid3->Filter->Add();
fd->Con_dition=ComboBox2->Items->Strings[ComboBox2->ItemIndex];
fd->Column = 3;
AdvStringGrid3->FilterActive=true;
24.自动调整列宽AutoSizeColumns
原型:void __fastcall AutoSizeColumns(const bool DoFixedCols, const int Padding)
用第二个参数来指定自动调整后需要额外增加的空间
25.TAdvStringGrid的打印。
使用TAdvPreviewDialog连接TAdvStringGrid来预览.这个控件中提供了接口可以直接对界面进行本地化。
使用TAdvStringGrid的Print()方法来打印。打印设置调整TAdvStringGrid::TPrintSettins类的相关属性
TPoint res;
res = AdvStringGrid1->FindNext();
if ((res.x>=0) && (res.y>=0))
{
AdvStringGrid1->Col=res.x;
AdvStringGrid1->Row=res.y;
}
else
ShowMessage("Text not found");
}
//----------
16.TAdvStringGrid:: Ints[int ACol][int ARow]以Integer类型的值来访问单元格,如果读取失败,会触发异常.
17.对特定单元格的对齐方式进行处理
添加TAdvStringGrid::OnGetAlignment事件处理句柄。
18.
(1).添加图标:TAdvStringGrid::AddIcon();
原型:void __fastcall AddIcon(int ACol, int ARow, Graphics::TIcon *aicon, TCellHAlign hal, TCellVAlign val)
(2).添加旋转字体:TAdvStringGrid:: AddRotated;
原型:void __fastcall AddRotated(int ACol, int ARow, short AAngle, AnsiString s);
(3).从ImageList中取出图象添加到单元格中:TAdvStringGrid:: AddImageIdx;
原型:void __fastcall AddImageIdx(int ACol, int ARow, int Aidx, TCellHAlign hal, TCellVAlign val);
参数Aidx为图片在ImageList中的索引.
(4).向单元格中添加位图:TAdvStringGrid:: AddBitmap;
原型:void __fastcall AddBitmap(int ACol, int ARow, Graphics::TBitmap *ABmp, bool Transparent, TCellHAlign hal, TCellVAlign val);
参数bool Transparent设置是否显示透明.
(5).自动添加编号:AutoNumberCol
TAdvStringGrid:: AutoNumberCol(int ACol)方法,对指定的列从1进行编号,不对Fixed行中的列编号;
用途:用于产生首列的自动编号。
(6).向单元格中添加多个图象:TAdvStringGrid::AddMultiImage
原型:void __fastcall AddMultiImage(int ACol, int ARow, int Dir, TCellHAlign
hal, TCellVAlign val);
事实上只是向系统声明一下,这个单元格将放置多个图象,图象的添加通过GridImages来添加。例如:
AdvStringGrid2->AddMultiImage(5,1,0,haBeforeText,vaCenter);
AdvStringGrid2->CellImages[5][1]->Add(0);
AdvStringGrid2->CellImages[5][1]->Add(1);
(7).如果TAdvStringGrid:: EnableHTML属性启用,那么,单元格中输入HTML源代码,它将以HTML格式显示出来,例如:
AdvStringGrid2->Cells[7][1]="Easy HTML
formatting";
AdvStringGrid2->Cells[7][2]="Including <IMG src=" "\x022" "idx:0" "\x022" ">
AdvStringGrid2->Cells[7][3]="Enjoy
----------
miniHTML";
AdvStringGrid2->Cells[7][4]="
AdvStringGrid2->Cells[7][5]="125 <SUP>9</SUP>/<SUB>16</SUB>";
这些内容在TAdvStringGrid中将以HTML格式显示出来。
(8).通过TAdvStringGrid:: RichEdit属性可以调用TAdvStringGrid的内置的RichEdit类,是一个RichEdit编辑器,可以使用它处理RTF格式文档,然后使用TAdvStringGrid::RichToCell方法写入单元格.
原型:void __fastcall RichToCell(int Col, int Row, Comctrls::TRichEdit *Richeditor);
可以把用TAdvStringGrid::RichEdit::Clear()把RichEdit清空,再重新添加内容,然后再添加到单元格中。
可以通过TAdvStringGrid::RichEdit::SelAttributes来调整RichEdit的格式。
(9).通过TAdvStringGrid:: AddProgress方法来在单元格中添加进度条
原型:void __fastcall AddProgress(int ACol, int ARow, Graphics::TColor FGColor, Graphics::TColor BKColor);
单元格的整数值就是当前进度值,可以使用TAdvStringGrid::Ints[col,row]来访问这个值。
(10).通过TAdvStringGrid::AddComment方法来添加注释。
原型:void __fastcall AddComment(int ACol, int ARow, AnsiString comment);
添加注释之后,会在单元格的右上角显示一个小的红色的三角号,例如:
AdvStringGrid2->AddComment(8,3,"This is a custom" "\x00D" "comment for this cell");
AdvStringGrid2->Cells[8][3]="Cell with
comment";
(11).通过TAdvStringGrid增强型的HTML语法解析,添加内部单元格之间的链接,例如:
AdvStringGrid2->Cells[8][4]=" AdvStringGrid2->Cells[8][5]=" (12).通过TAdvStringGrid:: AddButton来在单元格中添加按钮
原型:void __fastcall AddButton(int ACol, int ARow, int bw, int bh, AnsiString Caption, TCellHAlign hal, TCellVAlign val);
当添加的按钮被按下时,OnButtonClick事件被触发(?经测试,不能触该事件)。
19.在TAdvStringGrid::OnGetCellsColor()事件处理句柄中,可以对单元格的颜色和字体进行设置.
21.添加可收缩结点,外观上看起来类似于分组,
方法:
TAdvStringGrid::FixedCols=0;
TAdvStringGrid::FixedColWidth=20;
TAdvStringGrid::AddNode(2,4);
TAdvStringGrid::AddNode(7,2);
TAdvStringGrid::AddNode(13,4);
TAdvStringGrid::AddNode()方法原型:
void __fastcall AddNode(int ARow, int Span);第二个参数为分组的跨越度。
22.展开所有结点:TAdvStringGrid:: ExpandAll()方法
收缩所有结点:TAdvStringGrid:: ContractAll()方法
TAdvStringGrid::CellNode->NodeType=cnFlat;
TAdvStringGrid::CellNode->NodeType=cn3D;
TAdvStringGrid::CellNode->NodeType=cnGlyph;
以上三个属性设置StringGrid以结点的方式显示时的结点显示风格。
23.对TAdvStringGrid添加过滤
使用TAdvStringGrid中预定义的一种Filter类: TFilterData
例如:
TFilterData* fd;
AdvStringGrid3->Filter->Clear();
fd = AdvStringGrid3->Filter->Add();
fd->Condition = ComboBox1->Items->Strings[ComboBox1->ItemIndex];
fd->Column = 1;
fd = AdvStringGrid3->Filter->Add();
fd->Con_dition=ComboBox2->Items->Strings[ComboBox2->ItemIndex];
fd->Column = 3;
AdvStringGrid3->FilterActive=true;
24.自动调整列宽AutoSizeColumns
原型:void __fastcall AutoSizeColumns(const bool DoFixedCols, const int Padding)
用第二个参数来指定自动调整后需要额外增加的空间
25.TAdvStringGrid的打印。
使用TAdvPreviewDialog连接TAdvStringGrid来预览.这个控件中提供了接口可以直接对界面进行本地化。
使用TAdvStringGrid的Print()方法来打印。打印设置调整TAdvStringGrid::TPrintSettins类的相关属性
Tags:TAdvStringGrid 控件 技巧
编辑录入:爽爽 [复制链接] [打 印][]
更多精彩
赞助商链接