﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-wifecooky-随笔分类-C++ Builder</title><link>http://www.cppblog.com/wifecooky/category/14082.html</link><description>学一点，记一点</description><language>zh-cn</language><lastBuildDate>Mon, 05 Jul 2010 15:30:14 GMT</lastBuildDate><pubDate>Mon, 05 Jul 2010 15:30:14 GMT</pubDate><ttl>60</ttl><item><title>BCB的RadioGroup控件的ItemIndex属性BUG！</title><link>http://www.cppblog.com/wifecooky/archive/2010/07/05/119354.html</link><dc:creator>楚天清秋</dc:creator><author>楚天清秋</author><pubDate>Mon, 05 Jul 2010 07:53:00 GMT</pubDate><guid>http://www.cppblog.com/wifecooky/archive/2010/07/05/119354.html</guid><wfw:comment>http://www.cppblog.com/wifecooky/comments/119354.html</wfw:comment><comments>http://www.cppblog.com/wifecooky/archive/2010/07/05/119354.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wifecooky/comments/commentRss/119354.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wifecooky/services/trackbacks/119354.html</trackback:ping><description><![CDATA[<p>环境WindowsXP，BCB6.0（UPD4 (English)<br>Form1（主Form），Form1上有Button1，点击Button1显示Form2。<br>Form2上有一个RadioGroup1和Edit1，在Form2的OnShow事件中，<br>进行RadioGroup1-&gt;ItemIndex = StrToInt(Edit1-&gt;Text);赋值操作。Edit1-&gt;Text默认值0。<br>Form2显示后，在界面上选择与StrToInt(Edit1-&gt;Text)不同的选项后关闭Form2。假设选择了第二项。<br>回到Form1，重新打开Form2，这时应该显示的是RadioGroup1-&gt;ItemIndex = 0；<br>可是结果却显示为第二项。<br><br><br>PS：Form1，Form2都是自动创建的Form。<br><br>From1.cpp代码如下<br>//----------------------------Head Begin-----------------------------------------------<br>#ifndef Unit1H<br>#define Unit1H<br>#include &lt;Classes.hpp&gt;<br>#include &lt;Controls.hpp&gt;<br>#include &lt;StdCtrls.hpp&gt;<br>#include &lt;Forms.hpp&gt;<br>#include &lt;ExtCtrls.hpp&gt;<br>//---------------------------------------------------------------------------<br>class TForm1 : public TForm<br>{<br>__published:&nbsp;// IDE-managed Components<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TButton *Button1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void __fastcall Button1Click(TObject *Sender);<br>private:&nbsp;// User declarations<br>public:&nbsp;&nbsp;// User declarations<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; __fastcall TForm1(TComponent* Owner);<br>};<br>//---------------------------------------------------------------------------<br>extern PACKAGE TForm1 *Form1;<br>//---------------------------------------------------------------------------<br>#endif<br>//---------------------------Head End------------------------------------------------</p>
<p><br>//---------------------------Cpp Begin------------------------------------------------<br>#include &lt;vcl.h&gt;<br>#pragma hdrstop</p>
<p>#include "Unit1.h"<br>#include "Unit2.h"<br>//---------------------------------------------------------------------------<br>#pragma package(smart_init)<br>#pragma resource "*.dfm"<br>TForm1 *Form1;<br>//---------------------------------------------------------------------------<br>__fastcall TForm1::TForm1(TComponent* Owner)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : TForm(Owner)<br>{<br>}<br>//---------------------------------------------------------------------------</p>
<p>void __fastcall TForm1::Button1Click(TObject *Sender)<br>{<br>&nbsp;&nbsp;&nbsp; Form2-&gt;Show();<br>}<br>//--------------------------Cpp End-------------------------------------------------<br><br><br>Form2代码如下<br>//--------------------------Form2&nbsp; Head Begin-------------------------------------------------</p>
<p>#ifndef Unit2H<br>#define Unit2H<br>//---------------------------------------------------------------------------<br>#include &lt;Classes.hpp&gt;<br>#include &lt;Controls.hpp&gt;<br>#include &lt;StdCtrls.hpp&gt;<br>#include &lt;Forms.hpp&gt;<br>#include &lt;ExtCtrls.hpp&gt;<br>//---------------------------------------------------------------------------<br>class TForm2 : public TForm<br>{<br>__published:&nbsp;// IDE-managed Components<br>&nbsp;&nbsp;&nbsp; TRadioGroup *RadioGroup1;<br>&nbsp;&nbsp;&nbsp; TEdit *Edit1;<br>&nbsp;&nbsp;&nbsp; void __fastcall FormShow(TObject *Sender);<br>private:&nbsp;// User declarations<br>public:&nbsp;&nbsp;// User declarations<br>&nbsp;&nbsp;&nbsp; __fastcall TForm2(TComponent* Owner);<br>};<br>//---------------------------------------------------------------------------<br>extern PACKAGE TForm2 *Form2;<br>//---------------------------------------------------------------------------<br>#endif<br>//-----------------------------Form2 Head End----------------------------------------------</p>
<p><br>//-----------------------------From2 Cpp Begin----------------------------------------------</p>
<p>#include &lt;vcl.h&gt;<br>#pragma hdrstop</p>
<p>#include "Unit2.h"<br>//---------------------------------------------------------------------------<br>#pragma package(smart_init)<br>#pragma resource "*.dfm"<br>TForm2 *Form2;<br>//---------------------------------------------------------------------------<br>__fastcall TForm2::TForm2(TComponent* Owner)<br>&nbsp;&nbsp;&nbsp; : TForm(Owner)<br>{<br>}<br>//---------------------------------------------------------------------------</p>
<p>void __fastcall TForm2::FormShow(TObject *Sender)<br>{<br>&nbsp;&nbsp;&nbsp; RadioGroup1-&gt;ItemIndex = StrToInt(Edit1-&gt;Text);</p>
<p>}<br>//------------------------------From2 Cpp End---------------------------------------------<br><br><br><span style="COLOR: #ff0000">解决方法：<br>在TForm2::FormShow加入RadioGroup1-&gt;SetFocus();&nbsp;</span></p>
<p style="COLOR: #ff0000">void __fastcall TForm2::FormShow(TObject *Sender)<br>{<br>&nbsp;&nbsp;&nbsp; RadioGroup1-&gt;SetFocus();&nbsp;//加入<br>&nbsp;&nbsp;&nbsp; RadioGroup1-&gt;ItemIndex = StrToInt(Edit1-&gt;Text);</p>
<p>}<br></p>
<img src ="http://www.cppblog.com/wifecooky/aggbug/119354.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wifecooky/" target="_blank">楚天清秋</a> 2010-07-05 15:53 <a href="http://www.cppblog.com/wifecooky/archive/2010/07/05/119354.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于多国语言系统制作的注意事项</title><link>http://www.cppblog.com/wifecooky/archive/2010/06/20/118302.html</link><dc:creator>楚天清秋</dc:creator><author>楚天清秋</author><pubDate>Sun, 20 Jun 2010 05:12:00 GMT</pubDate><guid>http://www.cppblog.com/wifecooky/archive/2010/06/20/118302.html</guid><wfw:comment>http://www.cppblog.com/wifecooky/comments/118302.html</wfw:comment><comments>http://www.cppblog.com/wifecooky/archive/2010/06/20/118302.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wifecooky/comments/commentRss/118302.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wifecooky/services/trackbacks/118302.html</trackback:ping><description><![CDATA[<p>什么和国际接轨的废话就不多说了。<br>以下是制作多国语言系统时碰到的一些需要注意的Point。<br><br>参考IDE：BCB6.0<br>环境：日文系统，中文系统下设计界面<br>现象：在中文系统，日文系统下设计的1024*768的界面，在英文OS下显示溢出（只能显示界面一部分）。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; （当然前提是英文OS的屏幕分辨率也为1024*768，不然不溢出或变形才怪！）<br>结论：情况1：如果在设计时把Form的Font-&gt;Charset属性设置成SHIFTJIS_CHARSET，Name设置成ＭＳ Ｐゴシック<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 之类的汉字字体，在中文，日文OS下显示也许正常，在英文OS下就会溢出屏幕。大概会扩大1.3倍<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 左右。所以如果想在英文OS下显示正常，需要把字体设置成ANSI_CHARSET-Arial<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (or ANSI_CHARSET-Times New Roman)。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 情况2：如果已经把字体设置为ANSI_CHARSET-Arial了，还是显示溢出，或者出现了滚动条。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这种情况一般是由于系统的显示风格（桌面-&gt;右键-&gt;Property-&gt;Themes-&gt;Themes下拉框）不同的原因。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Windows自己也有风格可以选择，现在大部分熟悉的是较为美观的XP风格（Windows XP风格），<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其实之前一直是使用Windows Classic风格的，不然就不用给他取名为经典风格了，^_^<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 简单的说，Windows XP风格是Windows Classic风格的美化版。美化后的Windows XP风格，典型的变化<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 就是窗口的各个部件（标题栏之类）的大小发生了变化。Windows XP风格的窗口标题栏比<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Windows Classic风格的窗口标题栏的Height稍微变大了。这就是导致显示溢出或者出现滚动条的原因。<br><br></p>
<img src ="http://www.cppblog.com/wifecooky/aggbug/118302.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wifecooky/" target="_blank">楚天清秋</a> 2010-06-20 13:12 <a href="http://www.cppblog.com/wifecooky/archive/2010/06/20/118302.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>