TWebBrowserを介してWebページをロードするアプリケーションがあり、このページにいくつかのHTML入力があります。私が欲しいのは、入力の値を変更し、キャレットの位置を最後に設定することです。
これは私が現在持っているものです:
procedure SetInputValue(Document : IHTMLDocument2; const ElementId, NewValue : String);
var Doc : IHTMLDocument3;
El : IHTMLElement;
begin
Doc := Document as IHTMLDocument3;
if Assigned(Doc) then
begin
El := Doc.getElementById(ElementId);
if Assigned(El) then
begin
if El.tagName = 'INPUT' then
(El as IHTMLInputElement).Value := NewValue;
(El as IHTMLInputElement).select;
end;
end;
end;
このコードは、入力値を設定し、テキスト部分を強調表示します。IHTMLInputTextElement2インターフェイスを認識していますが、IE9からのみ使用できます。