如何 获取当前光标所在的字符属性
关键点
function queryCommandState(const cmdID: WideString): WordBool; safecall;
function queryCommandValue(const cmdID: WideString): OleVariant; safecall;
实现过程
| function GetFontName():string; begin       Result:=(Form1.webbrowser1.Document as 
      IHTMLDocument2).queryCommandValue(‘FontName‘); end; function GetFontSize():string; begin     Result:=(Form1.webbrowser1.Document as 
      IHTMLDocument2).queryCommandValue(‘FontSize‘); end; function IsBold():Boolean; Var  bRtn:Boolean; begin     bRtn:= (Form1.webbrowser1.Document as 
      IHTMLDocument2).queryCommandState(‘Bold‘);     if bRtn then         Result:=True     else         Result:=False; end; function IsItalic():Boolean; Var  bRtn:Boolean; begin     bRtn:= (Form1.webbrowser1.Document as 
      IHTMLDocument2).queryCommandState(‘Italic‘);     if bRtn then         Result:=True     else         Result:=False; end; function IsUnderline():Boolean; Var  bRtn:Boolean; begin     bRtn:= (Form1.webbrowser1.Document as 
      IHTMLDocument2).queryCommandState(‘Underline‘);     if bRtn then         Result:=True     else         Result:=False; end; function IsStrikeThrough():Boolean; Var  bRtn:Boolean; begin     bRtn:= (Form1.webbrowser1.Document as 
      IHTMLDocument2).queryCommandState(‘StrikeThrough‘);     if bRtn then         Result:=True     else         Result:=False; end; function IsSubScript():Boolean; Var  bRtn:Boolean; begin     bRtn:= (Form1.webbrowser1.Document as 
      IHTMLDocument2).queryCommandState(‘SubScript‘);     if bRtn then         Result:=True     else         Result:=False; end; function IsSuperScript():Boolean; Var  bRtn:Boolean; begin     bRtn:= (Form1.webbrowser1.Document as 
      IHTMLDocument2).queryCommandState(‘SuperScript‘);     if bRtn then         Result:=True     else         Result:=False; end; function IsJustifyLeft():Boolean; Var  bRtn:Boolean; begin     bRtn:= (Form1.webbrowser1.Document as 
      IHTMLDocument2).queryCommandState(‘JustifyLeft‘);     if bRtn then         Result:=True     else         Result:=False; end; function IsJustifyCenter():Boolean; Var  bRtn:Boolean; begin     bRtn:= (Form1.webbrowser1.Document as 
      IHTMLDocument2).queryCommandState(‘JustifyCenter‘);     if bRtn then         Result:=True     else         Result:=False; end; function IsJustifyRight():Boolean; Var  bRtn:Boolean; begin     bRtn:= (Form1.webbrowser1.Document as 
      IHTMLDocument2).queryCommandState(‘JustifyRight‘);     if bRtn then         Result:=True     else         Result:=False; end; function IsJustifyFull():Boolean; Var  bRtn:Boolean; begin     bRtn:= (Form1.webbrowser1.Document as 
      IHTMLDocument2).queryCommandState(‘JustifyFull‘);     if bRtn then         Result:=True     else         Result:=False; end; function IsInsertOrderedList():Boolean; Var  bRtn:Boolean; begin     bRtn:= (Form1.webbrowser1.Document as 
      IHTMLDocument2).queryCommandState(‘InsertOrderedList‘);     if bRtn then         Result:=True     else         Result:=False; end; function IsInsertUnorderedList():Boolean; Var  bRtn:Boolean; begin     bRtn:= (Form1.webbrowser1.Document as 
      IHTMLDocument2).queryCommandState(‘InsertUnorderedList‘);     if bRtn then         Result:=True     else         Result:=False; end; ///使用 procedure TForm1.WebBrowser1CommandStateChange(ASender: 
TObject;   Command: Integer; Enable: WordBool); Var  bRtn:Boolean; begin try   cbb_FontNameList.Text:=GetFontName();   cbb_FontSize.Text:=GetFontSize();   btn_Bold.Down:=IsBold();   btn_Italic.Down:=IsItalic();   btn_Underline.Down:=IsUnderline();   btn_strikethrough.Down:=IsStrikeThrough();   btn_SubScript.Down:=IsSubScript();   btn_SuperScript.Down:=IsSuperScript();   ToolButton_AlignTwo.Down:=IsJustifyFull();   ToolButton_AlignLeft.Down:=IsJustifyLeft();   ToolButton_AlignCenter.Down:=IsJustifyCenter();   ToolButton_AlignRight.Down:=IsJustifyRight();   ToolButton_UnoredredList.Down:=IsInsertUnorderedList();   ToolButton_OrderedList.Down:=IsInsertOrderedList();   //格式化 except   Exit; end; end; | 
图
 
备注
这个主要应用在工具栏按钮感应上
相关链接
delphi queryCommandState,布布扣,bubuko.com
原文:http://www.cnblogs.com/xe2011/p/3885591.html