Delphi VCL Menus单元绘制菜单逻辑错误
2015-09-06 10:16
381 查看
Delphi VCL Menus单元绘制菜单逻辑错误
DrawThemeTextEx(ThemeServices.Theme[teMenu], ACanvas.Handle, MENU_POPUPITEM, MenuStates[MenuItem.Enabled], PWideChar(WideString(Text)), Length(Text), Flags, @Rect, Options);
Text不是WideString,所以如果有汉字, Length(Text)会比WideString(Text)的长度大,就越界了。
C:\Program Files (x86)\CodeGear\RAD Studio\5.0\source\Win32\vcl\Menus.pas
DrawThemeTextEx(ThemeServices.Theme[teMenu], ACanvas.Handle, MENU_POPUPITEM, MenuStates[MenuItem.Enabled], PWideChar(WideString(Text)), Length(Text), Flags, @Rect, Options);
Text不是WideString,所以如果有汉字, Length(Text)会比WideString(Text)的长度大,就越界了。
C:\Program Files (x86)\CodeGear\RAD Studio\5.0\source\Win32\vcl\Menus.pas
相关文章推荐
- delphi sql 图片
- Delphi xe10下载(包含破解补丁和破解视频)
- UTF-8 delphi 函数
- 未测试 Delphi读写UTF-8、Unicode格式文本文件
- Delphi中ADO存取效率的探讨
- JS调用Delphi编写的OCX控件
- delphi 线程实战用法
- Delphi中TStringList类常用属性方法详解
- delphi json用法
- delphi数据库的备份及还原
- Delphi考虑sql注入 QuotedStr
- 使用THashedStringList管理结构体数据()
- Delphi会自动初始化全局变量和类成员变量,但不初始化局部变量
- Delphi 打印 TPrinter
- delphi数据类型解析
- Delphi 7 升级到 Delphi 2010 总结
- Delphi2010下的FillChar
- delphi随机数种子
- devmemdata.loadfromstream使用方法
- Delphi 接口机制真相