나는 리터의 시도가의 글꼴 크기를 변경할 때 사용자가 굵게, 기울임 등설정 글꼴 크기
문제 리터 데이 글꼴, 글꼴 크기를 변경할 수있는 이메일 클라이언트가 선택 중 하나를 위 또는 아래로 "EVariantTypeCastError"라는 메시지와 함께 "Null 유형의 변형을 OleStr 유형으로 변환 할 수 없습니다"가 표시됩니다.이 예외는 TextRange.queryCommandValue ('FONTSIZE')에서 발생합니다.
procedure TForm1.act_FontIncreaseExecute(Sender: TObject);
var
Selection: IHTMLSelectionObject;
HtmlPage: IHTMLDocument2;
TextRange: IHTMLTxtRange;
Parent: IHTMLElement2;
s: string;
i, mode: Integer;
begin
HtmlPage := self.HtmlEditor.Document as IHTMLDocument2;
Selection := HtmlPage.Selection;
TextRange := Selection.createRange as IHTMLTxtRange;
if (TextRange <> nil) then
begin
s := TextRange.queryCommandValue('FONTSIZE');
val(s, i, mode);
if mode = 0 then
HtmlPage.execCommand('FONTSIZE', False, inttostr(i + 1))
end;
end;
선택 글꼴의 크기를 늘리는 올바른 방법입니까?
편집 1 :
샘플 HTML은 :
그것은 문제처럼 보인다<HTML><HEAD></HEAD>
<BODY>
<P>
<SPAN style='FONT-SIZE: 7pt;'>
Test Text
</SPAN>
</P>
</BODY></HTML>
는 FONT-SIZE 스타일로 자리 잡고 있습니다. 이것이 꺼내지면 아무런 예외도 발생하지 않습니다. 내 최종 목표는 Outlook에서 복사하여 붙여 넣을 수 있도록하는 것입니다. color : red와 같은 다른 스타일을 사용하면 예외가 발생하지 않습니다. 그래서 문제가있는 바로 그 FONT-SIZE처럼 보입니다.
편집 2
예외 스택 추적은
Query/Exec에 대한 논의는 Olevariant입니다. FontSize는 항상 정수를 반환하지는 않습니다. 귀하의 경우에는 아무것도 반환하지 않는 것 같습니다 (null). 그러나 나는 당신의 오류를 재현 할 수 없다, 당신은 질문을 편집하고 오류를 재현하는 HTML 조각을 포함 할 수 있습니까? – whosrdaddy
도움을 주셔서 감사합니다. 예제로 질문을 업데이트하겠습니다. – MattLaza
'FONTSIZE' 명령은 텍스트 범위를 둘러싸고있는'FONT' 태그를 참조합니다 : 예. ' 테스트 문안'. HTML 예제에서 style 속성/요소를 처리해야합니다. – kobik