2017-09-13 6 views
2

にオプション(S)とVALUE(複数可)を追加します。私のデルファイ(7企業/ XPからDELPHI + TWEbbrowser - 私は空の選択ボックス持っているWebページ上の既存のSELECT

<select id="select" > 
</select> 

を - SP(3 ))その選択にN OPTION(s)とVALUE(s)を入れたいと思います。

Nは、サーバーからフェッチされ、1と150の間の任意の数を指定できます。このような

何か:私はに実行から変更される可能性がありますされ(Nの正確なvalyueを

実行時にのみを知っているだろう実行する - ここではn = 5):

DELPHI: 

For N := 0 to 5 DO 
    PutIntoSelect('option' + inttostr(n), 'value' + inttostr(n)); 

ので、結果は次のようになります。

HTML: 

    <select id="select" > 
    <option = '0'>value0</option> 
    <option = '1'>value1</option> 
    <option = '2'>value2</option> 
    <option = '3'>value3</option> 
    <option = '4'>value4</option> 
    <option = '5'>value5</option> 
    </select> 

どうすればいいですか?

私はIHTMLSELECTelementを研究しましたが、何か役に立つものが見つかりません。

答えて

1

かなり簡単です。オプション要素ファクトリを取得し、createを呼び出して新しいオプションをインスタンス化します。返されたオプションは、select要素のメソッドaddで追加します。

このコードは、どのように示していますか?安全ではない!そうは原則の一例として、以下を取る、あなたは粉々にそれをクラックする必要があり、そしてあなたは、参考のために頼む時はいつでも、頼ま1が割り当てられているかどうかを確認:

procedure TForm1.Button1Click(Sender: TObject); 
var 
    Option: IHTMLOptionElement; 
    Select: IHTMLSelectElement; 
    Factory: IHTMLOptionElementFactory; 
begin 
    Select := (WebBrowser1.Document as IHTMLDocument3).getElementById('select') as IHTMLSelectElement; 
    Factory := (WebBrowser1.Document as IHTMLDocument2).parentWindow.Option; 

    Option := Factory.create('Option 1', 'Value 1', False, True); 
    Select.add(IHTMLElement(Option), Unassigned); 
    Option := Factory.create('Option 2', 'Value 2', False, False); 
    Select.add(IHTMLElement(Option), Unassigned); 
end; 

あなたが一緒にプレイすることができますHTML:

<!DOCTYPE html> 
<html> 
<body> 
    <select id="select"/> 
</body> 
</html> 
+0

とにかく、コンボボックス内の150アイテムは、ほぼ秘書を雇うためのものです。 – Victoria

+0

ありがとうコードです。私はそれを試してみて(必然的に)それを修正する - 必要な場合。 _ 150項目について:(HEHE)大変稀な状況でのみ150項目(主に10~50)が選択されるので、幸いにも幹事は休務になるでしょう。 。 –

+0

それからそれを忙しく保つための項目の固定数を持つもう一つのコンボが必要です:)私は東京でこれをテストしました。 – Victoria

関連する問題