小编Pet*_*ter的帖子

我可以将代码放在案例之外的交换机中吗?

假设:

switch ( test ) {

  // Set some variables, call some functions ?
  int x = 1 ;
  int y = function(x) ;
  //

  case 1 : 
    // Process for test = 1
    ...
    break;

  case 5 : 
    // Process for test = 5
    ...
    break;

  default : 
    // Process for all other cases.
    ...

}
Run Code Online (Sandbox Code Playgroud)

执行我在第一个之前添加的额外代码是"合法的" case吗?我在例子中从未见过这个.

c c++

9
推荐指数
2
解决办法
4228
查看次数

很容易判断当前字体是否支持unicode字符?

我正在使用Borland C++ Builder 2009,我会像这样显示右箭头和左箭头:

Button2->Hint = L"Ctrl+\u2190" ;
Button3->Hint = L"Ctrl+\u2192" ; 
Run Code Online (Sandbox Code Playgroud)

这在Windows 7上工作正常,应用程序使用字体'Segoe UI'.

在XP上我得到一个正方形而不是箭头,我在XP上使用字体'Tahoma'.换句话说,XP中的Tahoma中没有提到的Unicode字符.

有一种简单快捷的方法可以简单地检查当前使用的字体是否支持所请求的Unicode字符?如果是这样,我可以用'>'或'<'替换箭头.不完美,但足够好.我不想在这个阶段开始更改字体.

你的帮助表示赞赏

c c++ winapi c++builder

6
推荐指数
1
解决办法
905
查看次数

c ++ towupper()不转换某些字符

我使用Borland C++ Builder 2009,我的应用程序被翻译成多种语言,包括波兰语.

对于一小段功能,我使用towuppper()来大写字符串,在用户首次忽略时强调它.

原始字符串从一个语言DLL加载到utf16 wstring对象,我转换如下:

int length = mystring.length() ;
for (int x = 0 ; x < length ; x++)
    {
    mystring[x] = towupper(mystring[x]);
    }
Run Code Online (Sandbox Code Playgroud)

这一切运作良好,除了波兰,在下面的句子: "Rozumiemryzykownośćwykonania TEJ operacji"转换为"ROZUMIEM RYZYKOWNO SC的WYKONANIA TEJ OPERACJI",而不是"ROZUMIEM RYZYKOWNO SC WYKONANIA TEJ OPERACJI"

(请注意,"ryzykowność"这两个字的最后两个字符不会转换).

这并不是说这个角色没有大写的Unicode变体.Unicode字符346可以解决问题. http://www.fileformat.info/info/unicode/char/015a/index.htm

这是我过时的编译器安装中过时的库的问题还是我错过了其他的东西?

c++ c++builder unicode-string

6
推荐指数
1
解决办法
502
查看次数

我如何知道TFont名称是否真正受到支持?

当我将控件的TFont Name属性设置TRichEdit为"Courier"时,字体将更改为Courier.

Edit->Font->Name  = "Courier";
Run Code Online (Sandbox Code Playgroud)

如果我想使用我不确定系统支持的字体(例如在较旧的操作系统上),该怎么办?据我所知,如果我将一个'未知'名称分配给TFont属性,实际字体不会改变,系统会处理它并坚持使用以前的字体,但我怎样才能以编程方式检查这个 ?

我想知道字体是否真的改变了(因为字体可用/已安装)?

或者我是否需要查询Screen-> Fonts以查明Name是否在列表中?

仅供参考:使用Borland C++ Builder(2009),但我确信与Delphi相关.

delphi vcl c++builder

4
推荐指数
1
解决办法
654
查看次数

当没有添加孩子时,有没有办法显示TTreeNode的>符号?

我在一个TTreeView对象中显示项目.当一个项目有子项时,控件>在图标旁边绘制一个(或者如果展开则绘制一个向下箭头).

我想知道>即使没有添加任何孩子,我是否能以某种方式告诉该项目.

在我的软件中存在某些条件,其中向用户显示有孩子是有意义的,而没有实际添加孩子(然后在选择项目时完成)

使用c ++ Builder 2009 VCL,但这个Q也应该对Delphi有效.

delphi vcl c++builder

2
推荐指数
1
解决办法
113
查看次数

C样式转换是否会添加程序集(代码),还是仅供编译器了解情况?

Class A 
{
public:

A *GetA(void) { return a; }

protected:

A *a;

};

Class B : public A
{
public:

B *GetB(void) { return (B*)a; }

};
Run Code Online (Sandbox Code Playgroud)

在AI类中,假设编译器(理想情况下)将优化并将getter内联到与直接访问变量无关的代码?

在B类中,变量被转换为B.这纯粹是为了编译器还是这也涉及到代码?对于B中的功能,汇编指令是否相同?

c++ class c++builder

1
推荐指数
2
解决办法
693
查看次数

在TSpeedButton中的文本和图标后面绘制TProgressBar

是否有可能来画TProgressBar上一个TSpeedButton,后面的文字和图标?

知道如何开始这个(假设它是可能的).我该怎么办呢?

在这种特殊情况下,我使用按钮来启动和停止进程,并且在该按钮中显示进程也是很好的.

delphi c++builder

0
推荐指数
1
解决办法
115
查看次数

(ungetc(getc(in), in) != EOF) 意味着..?

浏览一些不属于我的旧代码,我遇到了这一行:

if (ungetc(getc(in), in) != EOF) 
Run Code Online (Sandbox Code Playgroud)

in文件指针在哪里。

我不熟悉这些功能及其用途。

我是否正确地解释了这一点(尚未到达文件末尾)?

c

0
推荐指数
1
解决办法
76
查看次数

标签 统计

c++builder ×6

c++ ×4

c ×3

delphi ×3

vcl ×2

class ×1

unicode-string ×1

winapi ×1