TWebBrowser でフォームに入力する次の Delphi コードがあります。
procedure SetFieldValue(theForm: IHTMLFormElement; const fieldName: string; const newValue: string);
var
field: IHTMLElement;
inputField: IHTMLInputElement;
selectField: IHTMLSelectElement;
textField: IHTMLTextAreaElement;
begin
field := theForm.Item(fieldName, '') as IHTMLElement;
if Assigned(field) then
begin
if field.tagName = 'INPUT' then
begin
inputField := field as IHTMLInputElement;
// Make the change below to catch checks and radios.
if (inputField.type_ = 'checkbox') or (inputField.type_ = 'radio') then
begin
if newValue = 'Y' then
inputField.checked := True
else
inputField.checked := False;
end
else
inputField.value := newValue;
end
else if field.tagName = 'SELECT' then
begin
selectField := field as IHTMLSelectElement;
selectField.value := newValue;
end
else if field.tagName = 'TEXTAREA' then
begin
textField := field as IHTMLTextAreaElement;
textField.value := newValue;
end;
end;
end;
HTML ソースは次の例のようになります。
<select name="xosid">
<option value="" selected>-- choose one --</option>
<option value="first">This is one</option>
<option value="second">Another</option>
</select>
値を知らなくてもドロップダウンから「別」を選択できるように上記の関数を変更したいと思います...
助言がありますか?
前もって感謝します、
ゾルト