ComboBoxExにURLとイメージを表示するには?

解決


武田  2006-02-05 00:02:07  No: 19918

皆様にいつもお世話になっております。環境はWinXP  Delphi6Personalです。
ブラウザを作成しています。皆様のおかげでだんだん完成度が上がってくると欲が出てきます。
インターネットエクスプローラなどで、アドレスバーの中にhttp://の左にIEのアイコンを表示しますが、これを実現しようとして
ComboBoxEXを貼り付け、ImagesプロパティにImageを登録したImageListを関連づけしました。がこれから先が判りません。
TCustomComboBoxEx.Imagesのヘルプを見ると、「コンボボックスの項目がこれらのイメージを参照する場合,OverlayImageIndex プロパティおよび SelectedImageIndex プロパティを使います。」と書いてありますが、該当プロパティがありません。(あるいは見当違いかも)
ご指導をいただけませんでしょうか。m(_ _)m


coo  2006-02-05 01:22:11  No: 19919

こんにちは、こんな感じで画像を表示できました。

ImageListに表示させたい画像を登録する
ComboBoxExのImagesプロパティにImageListを関連付ける
オブジェクトインスペクタでComboBoxExのItemsExを選択して、[...]ボタンを押す
アイテム作成画面(?)が出るので、左上の黄色い四角(新規作成)を押す
アイテムが作成されたらオブジェクトインスペクタでImageIndexに目的の画像のIndexを設定する

これを参考にコードを書けば実行時に画像を指定できると思います。
OverlayImageIndexプロパティ、SelectedImageIndexプロパティはTComboBoxExItemのプロパティのようですね。


武田  2006-02-05 03:05:24  No: 19920

coo様、早速ご指導有り難うございます。
WebBrowserがまさにComboBoxEXにURLを書こうとする、例えば
procedure TformWebBrowser.FormActivate(Sender: TObject);
・・・
    formMain.ComboBoxEx1.Text := WebBrowser1.LocationURL;
の前に
コードを書いたらいいのではと思って書きますが、
コードをどのように記述したらいいか解りません。(理屈が解っていない)
教えていただけないでしょうか。お願いいたします。m(_ _)m。


coo  2006-02-05 03:44:39  No: 19921

すみません。自分も初心者でComboBoxEXも初めて触った程度なので、そのものズバリな回答ができません。
Textに直接イメージを表示させる方法はわかりませんが、以下のようにアイテムを作成して強引に表示させる事はできました。

procedure TForm1.Button1Click(Sender: TObject);
var
  NewItemIndex: integer;
begin
  NewItemIndex := ComboBoxEx1.ItemsEx.Add.Index;
  ComboBoxEx1.ItemsEx[NewItemIndex].ImageIndex := 0; //使いたい画像のindex
  ComboBoxEx1.ItemsEx[NewItemIndex].Caption := Label1.Caption;
  ComboBoxEx1.ItemIndex := NewItemIndex;
end;

TWebBrowserを使ったことがないのでちょっとわからないですが、
Label1.CaptionをWebBrowser1.LocationURLに変えればできそうな気がします。
どなたかもっとスマートな方法をフォローしてくれると助かります。


武田  2006-02-05 04:50:02  No: 19922

cooさん、有り難うございました。
やっとできました。
感謝いたします。m(_ _)m


coo  2006-02-05 05:21:43  No: 19923

お気づきかと思いますが念のため。
このままだとURLを表示するたびにアイテムが増えてしまうので、
適当なタイミングで
ComboBoxEx1.ItemsEx.Clear;
または
ComboBoxEx1.ItemsEx.Delete();
してください。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加