당신은 델파이 프로그래밍에서 유니 코드 시대의 시작하기 전에의 델파이 2007을 사용하고 있습니다! 이 델파이의 초기 버전에서 유니 코드 작업을하는 것은 매우 귀찮은이지만
, 일부 컨트롤, 특히 THtmlView 구성 요소에서 만족스러운 결과를 달성하는 것은 매우 가능하다.
//code to toggle source or WYSIWYG views
var
htmEd: IHTMLDocument2;
begin
htmEd := HtmlEdit.Document as IHtmlDocument2;
if ToggleTabSet.TabIndex = 0 then
begin
HtmlEditContainer.PageIndex := 0; // Tab sheet index
htmEd.body.innerHTML := Memo1.Lines.Text; // TTntMemo
pnlEditorState.Caption := 'Design View';
end
else
if ToggleTabSet.TabIndex = 1 then
begin
HtmlEditContainer.PageIndex := 1;
Memo1.Lines.Text := HtmEd.body.innerHTML;
pnlEditorState.Caption := 'Source View';
end;
위의 코드 당신은 내가 HTML 파일이 처음로드되는에 TTntMemo 구성 요소를 사용하고 있음을 알 수 읽기 :
나는 내 프로그램 중 하나에서 일부 코드 예제를 게시 할 수 있습니다. 그런 다음 HtmlView의 'body.innerHTML'속성에 메모의 'Text'를로드합니다.
htmEd.body.innerHTML := Memo1.Lines.Text;
주 :
- TntWare의 'Memo1.Lines.Text;' WideString 유형입니다.
- 'IHTMLDocument2'는 TEmbeddedWB에서 가져옵니다. 이유를 참조하십시오 why TEmbeddedWB is good?
저도 초기에 저에게 도움이되었습니다. 필자는 Delphi 2009로 전환했으며, 파일을로드하는 동안 적절한 TEncoding을 설정하는 것이 훨씬 쉽습니다!
왜 "유니 코드"html 파일이 있습니까? UTF-16/UCS-2 인코딩 (http://en.wikipedia.org/wiki/UCS-2)에 파일이 있다는 것을 의미한다고 가정합니다. 생성하는 응용 프로그램을 UTF-8 인코딩으로 변경하는 것이 훨씬 낫습니다. [일반적인 관찰, 나는'THtmlViewer'에 대해서는 아무런 경험이 없습니다.] – mghie
@mghie - 관측에 감사드립니다. 그것들은 UTF-16 파일입니다. 왜냐하면 그것들을 생성하는 프로그램이 (내 제어 밖에있는) 그것들을 출력하고 있기 때문입니다. 그래서 나는 그 순간에 붙어 있습니다. 비록 제가 프로젝트의 세대 부분을 인수 할 수 있고 출력 포맷을 적절히 제어 할 수 있기를 희망합니다. – robsoft