奇怪的问题,字体控件FontDialog中的数据如何显示和保存??

Cbfan 2002-04-08 08:59:30
if(FontDialog1->Execute())
{
Label1->Caption=FontDialog1->Font->Name;

Label1->Font->Charset=FontDialog1->Font->Charset;
Label1->Font->Color=FontDialog1->Font->Color;

Label1->Font->Style=FontDialog1->Font->Style;
}

Edit1->Text=Label1->Font->Charset;
Edit2->Text=Label1->Font->Color;

------------------------------------------------------

执行,我选择了Western编码;绿色字体;

Edit1~2分别显示:1,32768。

我想让它显示:Western;clGreen; 如何实现?????谢谢。

...全文
191 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
勉励前行 2002-04-09
  • 打赏
  • 举报
回复
其實,你保存個數字到INI中,再從INI中讀這個數字不就成了嗎?
保存字符串的話,讀入時還要再轉換一次的啊.
kingcaiyao 2002-04-09
  • 打赏
  • 举报
回复
你可以将它们保存字符串,不过你需要定义两个数组,一个是整型数组,一个是字符串数组。整型数组用于列举出所有可能取得的数字值,而字符串数组则用于列举出所有字体名称,字符集名称等。然后将两者对应就可以保存到你的Ini文件中去。
Cbfan 2002-04-09
  • 打赏
  • 举报
回复
谢谢诸位。

zswang(伴水)(破碎的心只剩下灵感)的方法很好用啊!

我再试试~~
晚上给分。
kingcaiyao 2002-04-09
  • 打赏
  • 举报
回复
如果你嫌麻烦的话,不如这样:
typdef MyCharSet
{
TFontCharSet Fch;
String CharSetName;
}
MyCharSet RFCharSet[19];
然后根据上面的TFontCharSet,对这19个元素赋值:
MyCharSet[i].Fch=ANSI_CHARSET;
MyCharSet[i].CharSetName="ANSI_CHARSET";
.....
....
TFontCharSet ch=Edit->Font->ChartSet;
IniFile->WriteString(KeyName,MyCharSet[ch].CharSetName);
.....
...

kingcaiyao 2002-04-09
  • 打赏
  • 举报
回复
TO cbfan:
注意我上面的代码是随后写的,自已要整理一下,因为:
ANSI_CHARSET 0 ANSI characters.
DEFAULT_CHARSET 1 Font is chosen based solely on Name and Size. If the described font is not available on the system, Windows will substitute another font.
SYMBOL_CHARSET 2 Standard symbol set.
MAC_CHARSET 77 Macintosh characters. Not available on NT 3.51.
SHIFTJIS_CHARSET 128 Japanese shift-JIS characters.
HANGEUL_CHARSET 129 Korean characters (Wansung).
JOHAB_CHARSET 130 Korean characters (Johab). Not available on NT 3.51

GB2312_CHARSET 134 Simplified Chinese characters (mainland china).
CHINESEBIG5_CHARSET 136 Traditional Chinese characters (Taiwanese).
GREEK_CHARSET 161 Greek characters. Not available on NT 3.51.
TURKISH_CHARSET 162 Turkish characters. Not available on NT 3.51
VIETNAMESE_CHARSET 163 Vietnamese characters. Not available on NT 3.51.
HEBREW_CHARSET 177 Hebrew characters. Not available on NT 3.51
ARABIC_CHARSET 178 Arabic characters. Not available on NT 3.51

BALTIC_CHARSET 186 Baltic characters. Not available on NT 3.51.
RUSSIAN_CHARSET 204 Cyrillic characters. Not available on NT 3.51.
THAI_CHARSET 222 Thai characters. Not available on NT 3.51
EASTEUROPE_CHARSET 238 Includes diacritical marks for eastern european countries. Not available on NT 3.51.
OEM_CHARSET 255 Depends on the codepage of the operating system.
这些数值并不是连续的,所以写的时候要注意处理一下.

kingcaiyao 2002-04-09
  • 打赏
  • 举报
回复
这样看看:程序片段
.....

char *sCharset[20]={"ANSI_CHARSET",.....};//具体你可看看TFontCharSet这个数据类型
TFontCharSet FCH;
FCH=Edit1->Font->CharSet;
IniFile->WriteString(keyname,sCharSet[FCH]);
.....
关于将颜色值保存成字符串方法与上类同。
王集鹄 2002-04-09
  • 打赏
  • 举报
回复
//BCB新手请多指教

//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString vIdent;
CharsetToIdent(Label1->Font->Charset, vIdent);
Edit1->Text = Ident;
Edit2->Text = ColorToString(Label1->Font->Color);
}
//---------------------------------------------------------------------------
Cbfan 2002-04-09
  • 打赏
  • 举报
回复
我试过了,没有成功。能不能具体说说,谢谢~~
windindance 2002-04-08
  • 打赏
  • 举报
回复
很遗憾
应该没有好的办法
你就把他们保存为数字吧
实际上你就算真的保存为字符串,你也没有办法读取的

如果你真的想保存为字符串
可以自己写一个函数返回(好象很笨哦:)
if (Color == clGreen)
return "clGreen";
else
...
Cbfan 2002-04-08
  • 打赏
  • 举报
回复
因为Label1->Font->Charset;和 Label1->Font->Color;保存的结果都是数字~~
我想让他们保存成字符串,如:Western; clGreen;
Cbfan 2002-04-08
  • 打赏
  • 举报
回复
没人会吗??

我就是想要保存
Label1->Font->Charset;
Label1->Font->Color;

在.ini文件中,

程序启动时,再读取。

我发现,这没有我想象得那么简单~~
内容概要:本文系统梳理了多个科研领域的前沿研究与技术实现,重点涵盖FDTD方法的完美匹配层(PML)研究,以及Matlab/Simulink在电磁、电力、控制、通信、信号处理、图像处理、路径规划、能源系统优化等领域的仿真与算法实现。文列举了大量基于Matlab和Python的科研案例,如风电功率预测、负荷预测、无人机三维路径规划、电池系统故障诊断、雷达模拟、通信编码、微电网优化调度等,并强调结合智能优化算法(如粒子群、遗传算法、深度学习等)提升系统性能。同时,提供了丰富的代码资源与仿真模型,涵盖永磁同步电机控制、逆变器设计、多智能体任务分配、虚拟电厂调度等复杂系统,助力科研人员快速开展复现实验与创新研究。; 适合人群:具备一定编程基础,熟悉Matlab/Python工具,从事电气工程、自动化、通信、人工智能、新能源、控制科学等相关领域研究的研发人员及研究生。; 使用场景及目标:① 学习并实现FDTD仿真的PML边界条件以有效抑制数值反射;② 掌握Matlab/Simulink在多物理场建模、控制系统设计与优化算法的综合应用;③ 借助提供的代码资源完成科研复现、课程设计、竞赛项目或工程原型开发; 阅读建议:此资源以科研实战为导向,不仅提供理论方法,更强调代码实现与仿真验证。建议读者结合自身研究方向,按目录顺序查阅相关模块,下载配套代码进行调试与二次开发,以达到学以致用、融会贯通的目的。

13,874

社区成员

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

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