2013-03-17 67 views
0

在德爾福,我有一個組合框,我想打開一個網絡鏈接,當第一個項目被選中,另一個如果第二個被選中。在德爾福按鈕組合框與按鈕

目前,我使用:

ShellExecute(Handle, 
      'open', 
      'link', 
      nil, 
      nil, 
      SW_SHOW); 

我想在組合框中會像: 打開遊戲網站 打開服務器站點 然後選定的遊戲網站打開site1.com,然後服務器站點打開站點2 .COM

回答

3

假設該組合框中包含URL,那麼你只需做到這一點:

ShellExecute(Handle, nil, PChar(ComboBox1.Text), nil, nil, SW_SHOW); 

沒有必要傳遞動詞。通過零並使用默認動詞。事實上,有時你會遇到一個瀏覽器,無法註冊到開放式動詞的動作。

如果你已經剝離了,你在組合顯示的鏈接文本的協議,你應該添加回去:

ShellExecute(Handle, nil, PChar('http://'+ComboBox1.Text), nil, nil, SW_SHOW); 

從你真正想要的評論來看是一個到一個URL和友好名稱之間的一個地圖。把兩者中的記載:

type 
    TSiteInfo = record 
    URL: string; 
    FriendlyName: string; 
    end; 

然後創建無論是他們的名單,TList<TSiteInfo>或動態數組,TArray<TSiteInfo>array of TSiteInfo。然後填充列表或數組。然後使用該結構以友好名稱填充組合框。點擊該按鈕時,請閱讀所選索引ComboBox1.ItemIndex。最後,使用該索引查找URL。

還有一種選擇是使用字典關聯URL和友好名稱。就我個人而言,我更喜歡TSiteInfo的列表。

+0

我想在組合框中會像: 打開遊戲網站 打開服務器站點 然後選定的遊戲網站打開site1.com,然後服務器站點打開site2.com – 2013-03-17 12:32:24

+0

你爲什麼要告訴我這個在評論?爲什麼這些信息不在問題中。如果我們要這樣做,則需要在問題中提供所有信息。無論如何,我已經更新瞭解決方案的概要。 – 2013-03-17 12:46:48