社区
VCL组件使用和开发
帖子详情
如何根据条件改变C++Builder 的DBGrid的每行颜色以及在第一列增加一个多选框
deshun205
2006-08-30 09:21:08
问题1:如何根据条件改变C++Builder 的DBGrid的每行颜色.不要找Delphi的。因为DrawDataCell不同
问题2:如何在DBGrid第一列增加一个多选框,然后根据多选框的选择来选择数据进行打印,使用的是QReprot.
谢谢大家了!
...全文
1158
23
打赏
收藏
如何根据条件改变C++Builder 的DBGrid的每行颜色以及在第一列增加一个多选框
问题1:如何根据条件改变C++Builder 的DBGrid的每行颜色.不要找Delphi的。因为DrawDataCell不同 问题2:如何在DBGrid第一列增加一个多选框,然后根据多选框的选择来选择数据进行打印,使用的是QReprot. 谢谢大家了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
raulLW
2006-09-14
打赏
举报
回复
BlueDeepOcean(蓝色·深海) :
我重新提问了
http://community.csdn.net/Expert/topic/5021/5021739.xml?temp=.1894953
谢谢大家了!
谁知道?
raulLW
2006-09-14
打赏
举报
回复
这样是不好,我知道,下次一定注意。
刚碰上这样的问题,解决不了,就来这查查,结果有人问相同的问题,就......
BlueDeepOcean
2006-09-14
打赏
举报
回复
怎么都是借着别人的帖子问自己的问题?这样不好,做人要厚道哦。
楼上的判断Table的RecNo即可。
raulLW
2006-09-14
打赏
举报
回复
第一个问题怎么解决的呢?
问题1:如何根据条件改变C++Builder 的DBGrid的每行颜色.不要找Delphi的。因为DrawDataCell不同
BlueDeepOcean
2006-09-13
打赏
举报
回复
DBGrid->Options << dgRowSelect;
wuqiu217
2006-09-13
打赏
举报
回复
怎么选中一行呢?谢谢...
jaffy
2006-09-05
打赏
举报
回复
LS的说的对,第3方控件有的时候就是简单,快,不过兰色的精神更好.^_^
netliuming
2006-09-05
打赏
举报
回复
是的,如果没有第3方控件替换,按兰色的方法应该可行。
flowercity
2006-09-04
打赏
举报
回复
ehlib控件可以实现这个功能
deshun205
2006-08-31
打赏
举报
回复
To BlueDeepOcean(蓝色·深海) :如何把这个TCheckBox放在第一列呢?能不能给出具体的例子?
谢谢大家的参与!
BlueDeepOcean
2006-08-31
打赏
举报
回复
就是选择哪一行就打印哪一行,不选择的不打印。
嗯……算法比较简单,但是具体实现就比较麻烦了:
1、确定记录条数,这个应该可以得到的,利用Count属性;
2、根据Count,进行一个for循环,动态生成TCheckBox,需要注意的,这些TCheckBox的实例的
索引号一定要连续的,否则对后续操作有影响;
3、书写一个公共函数完成对选择的索引号的记录,比如:
int __fastcall TForm1::WhichCheckBoxChecked(TObject *Sender)
{
if (Sender->InheritsForm(__classid(TCheckBox)))
return ((TCheckBox*)Sender)->Components->Index; //好像这么写,记不清了
}
4、通过一个TStringList或者一个二维数组保存DBGrid中选择了CheckBox的记录。由于DBGrid
是二维表,因此需要用到一个循环;
5、打印。
deshun205
2006-08-31
打赏
举报
回复
To BlueDeepOcean :第一列的每一行均存在一个CheckBox .
deshun205
2006-08-31
打赏
举报
回复
不是ComboBox。CheckBox,就是把所有选中的记录进行打印。
netliuming
2006-08-31
打赏
举报
回复
LZ是要ComboBox的效果吧?
BlueDeepOcean
2006-08-31
打赏
举报
回复
第二个问题说的不是很清楚。在DBGrid的第一列生成CheckBox很简单,但是你所说的第一列增加一个多选框,
我的理解是放在Top-Left的位置,也就是单元格的(0,0)位置上是吗?
还是说第一列的每一行均存在一个CheckBox?
BlueDeepOcean
2006-08-31
打赏
举报
回复
在默认所有的表格行可见的情况下,给出你可以取出所选行的字段值的代码,这个代码我以ShowMessage显示的,你可以将他保存在TStringList中,之后利用两次循环的方式变为二维表:
.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TCheckBox *cb[MAX_PATH];
TStringList *sl; //用于保存为二维表
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
sl = new TStringList;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
for (int i = 0;i < ADOTable1->RecordCount;i ++)
{
cb[i] = new TCheckBox(this);
cb[i]->Parent = this;
cb[i]->Name = "cb" + AnsiString(i + 1);
cb[i]->Left = DBGrid1->Left + 2;
cb[i]->Top = DBGrid1->Top + 19 * (i + 1);
cb[i]->Width = 10;
cb[i]->Height = 18;
cb[i]->Caption = "";
cb[i]->Visible = true;
cb[i]->BringToFront();
cb[i]->OnClick = WhichRecordNOChecked;
}
}
//---------------------------------------------------------------------------
.h
private: // User declarations
void __fastcall TForm1::WhichRecordNOChecked(TObject *Sender)
{
if (Sender->InheritsFrom(__classid(TCheckBox)))
{
if (((TCheckBox*)Sender)->Checked)
{
/* for testing
((TCheckBox*)Sender)->Name.SubString(((TCheckBox*)Sender)->Name.Pos("b") + 1,MAX_PATH).ToInt()
*/
ADOTable1->First();
if ((((TCheckBox*)Sender)->Name.SubString(((TCheckBox*)Sender)->Name.Pos("b") + 1,MAX_PATH).ToInt()) != ADOTable1->RecNo)
{
for (int i = 1;i < (((TCheckBox*)Sender)->Name.SubString(((TCheckBox*)Sender)->Name.Pos("b") + 1,MAX_PATH).ToInt());i ++)
ADOTable1->Next();
}
/*
ShowMessage(ADOTable1->RecNo); //for testing
*/
for (int c = 0;c < DBGrid1->Columns->Count;c ++)
ShowMessage(DBGrid1->Fields[c]->AsString);
}
}
}
BlueDeepOcean
2006-08-31
打赏
举报
回复
当然会出问题了,我这是默认所有行均显示的情况。
deshun205
2006-08-31
打赏
举报
回复
我拖拉右边的拖拉条,不会出问题吗?因为cb[i]不会移动的
BlueDeepOcean
2006-08-31
打赏
举报
回复
啊,忘了一句,就是
cb[i]->OnClick = WhichCheckBoxChecked; //上面定义的那个函数。
BlueDeepOcean
2006-08-31
打赏
举报
回复
根据记录条数,动态生成TCheckBox类的实例。打印的时候,可以在点击“打印”后,触发这个事件。
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TCheckBox *cb[MAX_PATH];
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
for (int i = 0;i < ADOTable1->RecordCount;i ++)
{
cb[i] = new TCheckBox(this);
cb[i]->Parent = this;
cb[i]->Left = DBGrid1->Left + 2; //调整系数
cb[i]->Top = DBGrid1->Top + 18 * (i + 1); //调整系数
cb[i]->Width = 10; //调整系数
cb[i]->Height = 18; //调整系数
cb[i]->Caption = "";
cb[i]->Visible = true;
cb[i]->BringToFront();
}
}
//---------------------------------------------------------------------------
加载更多回复(3)
c++builder
中
db
grid
控件排序_甘特图控件VARCHART XGantt,解读活动组布局的“单独行中的节点”选项!...
本文详细介绍了VARCHARTXGantt控件中的分组功能,包括如何创建和重新组合节点、管理空组及摘要栏显示等。通过简单的步骤指导用户实现交互式分组,提高甘特图的可读性和实用性。
d2l-zh-pytorch.pdf.tar.gz
# 动手学深度学习 第二版 pytorch 版本 # https://zh-v2.d2l.ai/
vlc-3.0.11 supports AVS+ and DRA
打开链接下载源码: https://pan.quark.cn/s/64cfd9352cf7 VLC播放器是一款备受青睐的跨平台开源多媒体播放软件,其3.0.11版本在继承既有卓越功能的同时,显著优化了对特定音视频编码格式的兼容性,尤其着重于对AVS+和DRA这两种源自中国的编码标准的支持。这一改进使得VLC不仅能够处理国际上通行的H264和H265视频编码,以及AC3音频编码,更能契合国内用户的播放需求,流畅播放采用AVS+和DRA编码的多媒体资料。1. **AVS+(Advanced Video Coding Plus)**:AVS+是中国自主设计的一种高效视频编码规范,其核心目标在于提升编码效能,减少带宽占用,特别适用于高清及超高清视频的传输。相较于早期的AVS技术,AVS+在编码效能、图像质量和实现难度上取得了更优的均衡,为国内的电视广播、IPTV、网络视频等领域提供了定制化的解决方案。2. **DRA(Digital Radio Audio)**:DRA是一种基于数字音频广播的高保真音频编码技术,由中国独立研发而成。该技术支持多样化的码率和声道布局,确保提供卓越的音频体验,同时具备优异的网络适应性及低延迟表现,适用于广播、互联网音频传输等多种使用场景。3. **H264(亦称AVC)**:H264是一种高效视频压缩规范,广泛应用于在线视频、流媒体服务、蓝光光盘等领域,其显著优势在于能够在较低的码率下呈现高清晰度的视频画面。4. **H265(亦称HEVC)**:作为H264的升级版标准,H265在压缩效率上实现了进一步突破,相同画质下可将文件大小减半,这对4K、8K等超高清视频的传输和存储尤为关键。5. **AC3(Dolby Digital)**:AC3是...
卧式柱塞泵泵体夹具设计【说明书+CAD图纸+外文翻译+过程卡】.rar
卧式柱塞泵泵体夹具设计【说明书+CAD图纸+外文翻译+过程卡】.rar
Three Quarks Python 高性能数值计算库完整源码|科学计算与仿真开发工程
本资源为 Three Quarks 开源项目完整源码压缩包,该项目是面向科学计算、物理仿真的 Python 高性能运算框架,依托底层优化实现矩阵运算、微分求解、粒子仿真等功能。 1. 适用人群:计算物理研发人员、数据分析工程师、理工科科研学生、数值仿真项目开发者; 2. 适用场景:物理场数值模拟、金融数值建模、工科仿真算法落地、深度学习底层算子测试; 3. 配套内容:源码自带多组仿真示例、环境部署说明、依赖配置文档,规避 GitHub 下载限速,本地配置依赖即可编译调试。
VCL组件使用和开发
604
社区成员
13,456
社区内容
发帖
与我相关
我的任务
VCL组件使用和开发
C++ Builder VCL组件使用和开发
复制链接
扫一扫
分享
社区描述
C++ Builder VCL组件使用和开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章