我的一个字符串前面是'&&'开头,但用showmessage()显示的时候,总是把第一个&显示成加速键功能,可是我不想这样呀。
我就想显示成'&&';怎么办呀
我就想显示成'&&';怎么办呀
解决方案 »
- 一组时间计算!!!
- 小升5个裤叉,散散分~~~~[散分贴]
- 关于D2006中安装activex控件的严重问题,请教高手
- 释放数据模块内存出错问题
- 如何得到一窗体或者是Frame上的画面?或者说怎么把某一窗体或者Frame上的内容截屏?
- 要把2003年5月6日这样string转换成datetime或者date类型用什么函数?
- 送:500分:自定义纸张连续打印,但用quickreport3编的程序打印完一页后,走一个空白页再打下一页,
- 请教一个错误提示
- 怎样得到我在局域网里上网时的因特网上的IP
- 在delphi的BDE配置程序中右半部分“Definition”页的数据录入形式在delphi中如何实现
- 关与dbgrideh的奇怪问题
- 为什么我用DELPHI写SQL的数据还原不成功啊?
类名叫TMessageForm,可以Dialogs.pas单元看看源代码
type
TMessageForm = class(TForm)
private
Message: TLabel;
procedure HelpButtonClick(Sender: TObject);
protected
procedure CustomKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure WriteToClipBoard(Text: String);
function GetFormText: String;
public
constructor CreateNew(AOwner: TComponent); reintroduce;
end;明显“Message: TLabel”就是用来显示传入的字符串。
TLabel类有一个ShowAccelChar属性可以控制是否处理显示快捷字符。
如果有办法获得这个Message实例就可以设置它的ShowAccelChar属性解决楼主的问题。
Screen是VCL窗体的一个管理器,可以遍历当前的窗体也可以找到哪个窗体被激活
查一下帮助可以看到有一个OnActiveFormChange事件,顾名思义就是激活窗体改变的事件
那么就动手吧:
procedure TForm1.FormCreate(Sender: TObject);
begin
Screen.OnActiveFormChange := ScreenActiveFormChange;
end;procedure TForm1.ScreenActiveFormChange(Sender: TObject);
var
I: Integer;
vActiveForm: TForm;
begin
vActiveForm := Screen.ActiveForm;
if Assigned(vActiveForm) and
SameText(vActiveForm.ClassName, 'TMessageForm') then
for I := 0 to vActiveForm.ComponentCount - 1 do
if vActiveForm.Components[I] is TLabel then
TLabel(vActiveForm.Components[I]).ShowAccelChar := False;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('&Zswang 路过');
end;