季世平大哥,又要请教你问题了,请帮忙解答

yangguo_god 2002-07-29 11:57:16
先谢谢了,
1,如何将font->Color转换成long型存储在数据库,反过来又如何,
2,如果Font->Charset为中文字符时存为1,西文字符时存为0,怎样实现,反过来又
怎么做呢?
...全文
43 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangguo_god 2002-07-31
  • 打赏
  • 举报
回复
不好意思,问得太多了,我都不好意思了,加分,买单了
谢谢季大哥
yangguo_god 2002-07-30
  • 打赏
  • 举报
回复
前面的问题都已经明白,太感谢了,
还想问一下,用query连接DBGrid,数据可以实现在DBGrid中修改吗,好象ADOQuery可以,
还有,我想在表中字段clsUnderLine的值为true时,PaintBox1预览的内容有下划线,我这样写,不行,试了很久都试不出,该怎么做了
String rr;
rr=Query1->FieldByName("CIsUnderLine")->AsString;
if(rr=="true")
{PaintBox1->Font->Style=TFontStyles()<<fsUnderline;}
Canvas 2002-07-30
  • 打赏
  • 举报
回复
季大哥真真真诲人不倦呀~~
不知道怎么形容。
像菩萨。
jishiping 2002-07-30
  • 打赏
  • 举报
回复
再啰嗦一下,在副表里,不能将ID设成主键(设成主键后,就不能有重复的
值了),只能对ID建一个次索引(Secondary Index)。
jishiping 2002-07-30
  • 打赏
  • 举报
回复
假设主表的字段ID和副表的字段ID对应,在主表里,每个ID只能有一个,在
副表里,有多个ID和主表的ID对应。那么这样做:在主表里,将ID设成主键,
在副表里,对字段ID建一个次索引。然后,在Table2的属性masterfields,
直接键入ID就可以了,或者点击...按钮,在弹出的对话框里,上面的选择框
里,选择你定义的次索引名,然后就可以建立对应关系了。
jishiping 2002-07-30
  • 打赏
  • 举报
回复
你需要设置TUpDown的属性Max, Min 以及 Position。
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
UpDown1->Position = 0;
UpDown1->Max = ClientHeight;
UpDown1->Min = -ClientHeight;
}
fansses 2002-07-30
  • 打赏
  • 举报
回复
80分就猛问人家这么多问题,虽然说分不是最重要的,但是你也得合适一点好不好,
yangguo_god 2002-07-30
  • 打赏
  • 举报
回复
还想问一下,upDown的用法,下面这段代码,开始只能使用up按钮向上移动,不能向下移动,向上移动后,向下可以移动,但最多只能返回原处就不能动了,该怎么做可以随意移动了,谢谢了
if(Button==btNext)
{
int y=PaintBox1->Top;
y--;
y>=0;
PaintBox1->Top=y;
}
else
{int y=PaintBox1->Top;
y++;y<=80;
PaintBox1->Top=y; }
yangguo_god 2002-07-30
  • 打赏
  • 举报
回复
不好意思, 太苯了,
季大哥,你现在可是我的偶像,象你学习,你的cb运用到如此出神的地步,
有什么好的方法吗,我要向你看齐
jishiping 2002-07-30
  • 打赏
  • 举报
回复
Logical型就是bool型。所以用 AsBoolean 就对了。上面没有给你写全,我
以为你知道的,哪知道你原来不知道。
if (Query1->FieldByName("CIsUnderLine")->AsBoolean)
PaintBox1->Font->Style = PaintBox1->Font->Style << fsUnderline;
else
PaintBox1->Font->Style = PaintBox1->Font->Style >> fsUnderline;
yangguo_god 2002-07-30
  • 打赏
  • 举报
回复
季大哥,我查看的cIsUnderLine为Logical型的,你的方法我试了,还是有点混乱,就是,cIsUnderLine值为False时,预览也有下划线这是什么原因了?
jishiping 2002-07-30
  • 打赏
  • 举报
回复
可以。将Query的属性 RequestLive 设成 true 就可以了。如:
Query1->RequestLive = true;
Query1->SQL->Text = "SELECT * FROM table_name";
try {
Query1->Active = true;
}
catch(EDatabaseError& e) {
}

要看你的字段clsUnderLine的类型是什么了。你可以这样试试看:
if (Query1->FieldByName("CIsUnderLine")->AsBoolean)
PaintBox1->Font->Style = TFontStyles()<<fsUnderline;
yangguo_god 2002-07-29
  • 打赏
  • 举报
回复
哦,是这样,寄大哥再问一个问题,我建一个主副明细表,用的是paradox,
我先用table 组件,两个table,在masterfields 里面建立连接,只能用主键
而且必须所有主键都建立连接,我就定义了一个主键建立连接,可是不能建立一对多的关系,每个主表记录对应的副表记录只能有一条,超过后,就不能添加记录了
实在没办法就改用,query做,建立连接后,
副表对应的DBnavigator的添加等按钮就失效了,我应该怎么做了,
用table 怎么做
用query又应该怎么做了
jishiping 2002-07-29
  • 打赏
  • 举报
回复
上面的 Font->Charset = IsCHS ? GB2312_CHARSET ? ANSI_CHARSET;
应该是 Font->Charset = IsCHS ? GB2312_CHARSET : ANSI_CHARSET;
jishiping 2002-07-29
  • 打赏
  • 举报
回复
1. 其实TColor本身就是一个整数,所以只需要做一个简单的强制类型转换
就可以了。其实不用强制类型转换也可以,只是会有警告而已。
int nColor = (int)Font->Color;
反过来就是:
Font->Color = (TColor)nColor;
2. 如果仅仅考虑简体中文的话:
int IsCHS = Font->Charset==GB2312_CHARSET ? 1 : 0;
保存变量 IsCHS 就可以了。反过来,已知 IsCHS,那么:
Font->Charset = IsCHS ? GB2312_CHARSET ? ANSI_CHARSET;
Canvas 2002-07-29
  • 打赏
  • 举报
回复
mark
airspace 2002-07-29
  • 打赏
  • 举报
回复
学习
hansonhx 2002-07-29
  • 打赏
  • 举报
回复
@_@

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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