線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1076
推到 Plurk!
推到 Facebook!

請教這種條件選擇框如何設計

答題得分者是:supman
Leonli
一般會員


發表:23
回覆:21
積分:18
註冊:2004-03-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-12 12:29:48 IP:220.248.xxx.xxx 未訂閱
如附圖, “職能”欄爲 主項,“職位”欄爲 細項 選擇主項後,細項會出相關內容。右邊框爲已選擇的項目(包含從不同主項中已選的項目) 主項和細項都是從SQL裏面取值後動態建立起來。 請問各位有沒有設計過這種選擇框,可否給個參攷例子,謝謝。
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-12 12:40:31 IP:61.70.xxx.xxx 未訂閱
您好: 拉一個ComboBox,跟兩個ListBox ComboBox.Items.Add('諮詢'); . . . 在ComboBox的OnSelect中寫下 if (ComboBox.Text='諮詢') then begin While not Query.Eof do begin ListBox1.Items.Add(Query.FieldByName(欄位).AsString); Query.Next(); end; end; 新增時 ListBox2.Items.Add(ListBox1.Items.Strings[lbSrc.ItemIndex]); 刪除時 ListBox2.DeleteSelected(); 發表人 - supman 於 2005/04/12 12:45:19
Leonli
一般會員


發表:23
回覆:21
積分:18
註冊:2004-03-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-12 19:22:04 IP:220.248.xxx.xxx 未訂閱
謝謝Supman,但是問題還有幾點沒有解決。 1、如果我Combobox選中了一個組,把他全加到右邊,然後Combobox再選中這個組,再把他加到右邊,這樣子右邊就有重複值了。 2、如果我把Combobox選到一個組,把他加到右邊。然後Combobox再選中另一個組,卻可以把右邊的內容加到左邊去了。 不知是否有辦法解決,謝謝。
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-12 20:40:56 IP:203.204.xxx.xxx 未訂閱
您好: 您無論加到右邊或加回左邊,加過去後就本剛才選定的刪除掉,就不會有那問題了. 全部都加過去,您可以這樣 ComboBox.Items.Clear();
Leonli
一般會員


發表:23
回覆:21
積分:18
註冊:2004-03-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-04-12 22:51:10 IP:61.152.xxx.xxx 未訂閱
不是的,您大概誤解我的意思了,我每次從左邊加到右邊或右邊加到左邊的時候都會刪掉的。只是說我如果在Combobox中選了一個類,下面的Listbox裏面會把數據庫中的值創建一次,我加入一些到右邊後,如果Combobox再次選中這個類的話,數據庫中的值又會再創建一次,所以每次拉Combobox都會創建。
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-04-12 23:12:34 IP:203.204.xxx.xxx 未訂閱
喔喔,了解,是我搞錯了. 當ComboBox按下去時將兩各List資料比對,如果已經存在就移除.
for i:=0 to ListBox2.Items.Count-1 do 
 begin
  for j:=0 to ListBox1.Items.Count-1 do 
   begin
    if (ListBox2.Items.String[i]=ListBox1.Items.String[j]) then 
     begin
      ListBox1.Items.Delete(i);
     end;
   end;
 end;
隨手寫的程式,沒測試,如果有誤的地方您自己改一下.
Leonli
一般會員


發表:23
回覆:21
積分:18
註冊:2004-03-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-04-13 00:42:53 IP:61.152.xxx.xxx 未訂閱
因爲要刪東西,所以for j:=0 to ListBox1.Items.Count-1 do 應該爲 for j := ListBox1.Items.Count-1 downto 0 do 問題解決了,謝謝supman。
系統時間:2024-05-16 6:31:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!