我编写了一个记事本,现在要实现一个功能:
一段文字,选中几个字设置为粗体后,在菜单上就会有个“勾”,再按一下,就会取消粗体,“勾”也会消失,选中另外的没有设置粗体的文字,就没有显示“勾”,按一下,便会把字体设为粗体,也会在菜单上显示“勾”,大概就是这样。
高手帮忙啊!
一段文字,选中几个字设置为粗体后,在菜单上就会有个“勾”,再按一下,就会取消粗体,“勾”也会消失,选中另外的没有设置粗体的文字,就没有显示“勾”,按一下,便会把字体设为粗体,也会在菜单上显示“勾”,大概就是这样。
高手帮忙啊!
解决方案 »
- 多个同类控件共用同一过程
- socket的奇怪现象...
- 我想用TClientSocket做一个登录网站的登录工具(输入用户名,密码后登录),该如何做?
- 毕业了,郁闷,散分...
- 我是新手,请帮我!!!关于power函数的
- 来这儿去高分!!!!
- DELPHI DBgrid中的数据和edit中同步显示?
- 用delphi实现最近使用的文件和文件夹的监测,遇到问题!
- 在delphi里怎样把123456789.1234USD转变成英语的读法?
- 如何从可执行文件中读取图标?
- 如何合并stringgrid的单元格,在合并格子里输入文字能居中
- 关于MAINMENU菜单控件的用法问题,判断checkde属性问题
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Menus;type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
Styles1: TMenuItem;
Bold1: TMenuItem;
RichEdit1: TRichEdit;
procedure Bold1Click(Sender: TObject);
procedure RichEdit1SelectionChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Bold1Click(Sender: TObject);
begin
if Bold1.Checked then
begin
Bold1.Checked := false;
RichEdit1.SelAttributes.Style := RichEdit1.SelAttributes.Style - [fsBold];
end
else
begin
Bold1.Checked := True;
RichEdit1.SelAttributes.Style := RichEdit1.SelAttributes.Style + [fsBold];
end;end;procedure TForm1.RichEdit1SelectionChange(Sender: TObject);
begin
Bold1.Checked := fsBold in RichEdit1.SelAttributes.Style;
end;end.
~~~~~~~~~~~~~~~这个事件,就是响应你的Select文字有变化
begin
Bold1.Checked := fsBold in RichEdit1.SelAttributes.Style;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~菜单项是否标为True,决定于选中文字是否是粗体
end;