全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1782
推到 Plurk!
推到 Facebook!

請問ListBox的技巧?

尚未結案
betty
一般會員


發表:11
回覆:21
積分:6
註冊:2002-09-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-19 15:24:02 IP:61.30.xxx.xxx 未訂閱
請問各位: 我在印表前將符合條件的資料列之某一欄位寫入ListBox中, 讓使用者選擇列印。要是某筆以前做過列印的話, ListBox中的此筆值將以不同顏色的字提示... 謝謝解答
evon
一般會員


發表:1
回覆:10
積分:2
註冊:2003-02-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-19 15:39:11 IP:211.78.xxx.xxx 未訂閱
用 CheckListBox 就可以了,何必那麼麻煩! 若自己寫元件,繼承 TCustomListBox 在 procedure TCustomListBox.CNDrawItem(var Message: TWMDrawItem); 在加載設定符合條件時 Canvas.Font.Color := 若不寫元件 使用 OnDrawItem 事件 Style 必須為 lbOwnerDrawVariable 自己重繪文字
betty
一般會員


發表:11
回覆:21
積分:6
註冊:2002-09-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-02-19 16:10:03 IP:61.30.xxx.xxx 未訂閱
當我加入第二個到Listbox時,整個Listbox中的文字會全部變色    我的程式碼如下,還請前輩指教 ,謝謝。    procedure TForm1.Button1Click(Sender: TObject); begin   ListBox1.Items.Add(Edit1.Text); end;    procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;   Rect: TRect; State: TOwnerDrawState); begin   with ListBox1.Canvas do begin     FillRect(Rect);     IF (Copy(Edit1.Text,Length(Edit1.Text),1)='1') then       ListBox1.Canvas.Font.Color :=clRed     Else       ListBox1.Canvas.Font.Color :=clBlue;     TextOut(Rect.Left+1, Rect.Top+1, ListBox1.Items[Index]);   End; end;        
引言: 用 CheckListBox 就可以了,何必那麼麻煩! 若自己寫元件,繼承 TCustomListBox 在 procedure TCustomListBox.CNDrawItem(var Message: TWMDrawItem); 在加載設定符合條件時 Canvas.Font.Color := 若不寫元件 使用 OnDrawItem 事件 Style 必須為 lbOwnerDrawVariable 自己重繪文字
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-02-19 18:19:13 IP:202.39.xxx.xxx 未訂閱
是兩個 Item 都變紅(藍)色?
betty
一般會員


發表:11
回覆:21
積分:6
註冊:2002-09-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-02-20 08:21:37 IP:61.30.xxx.xxx 未訂閱
是的。 我只想讓符合條件的筆數變色.... 還請各位前輩指導,謝謝 !!    
引言: 是兩個 Item 都變紅(藍)色?
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-02-20 09:17:58 IP:202.39.xxx.xxx 未訂閱
看您 if 的條件式 符合的就呈紅色, 不符合的就呈藍色, 有錯嗎?
betty
一般會員


發表:11
回覆:21
積分:6
註冊:2002-09-18

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-02-20 09:30:28 IP:61.30.xxx.xxx 未訂閱
可是我RUN的結果會是:  若第一筆:符合 ->紅色    第二筆:符合 ->則第一筆和第二筆皆會變成藍色    HELP ....
引言: 看您 if 的條件式 符合的就呈紅色, 不符合的就呈藍色, 有錯嗎?
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-02-20 09:39:29 IP:202.39.xxx.xxx 未訂閱
還是這一行 IF (Copy(Edit1.Text,Length(Edit1.Text),1)='1') then 改成 IF (Copy(ListBox1.Items[Index], Length(Edit1.Text),1)='1') then
Perlman
一般會員


發表:0
回覆:5
積分:1
註冊:2002-03-14

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-02-20 09:43:22 IP:202.145.xxx.xxx 未訂閱
我有個比較簡單的方法,不知道與你的需求不符合? 1.先將ListBox的 MultiSelect 設為 True 2.begin for i := 0 to ListBox1.Count -1 do begin if ( i mod 2 = 0) then begin ListBox1.Selected[i] := True; end; end; 試試看吧。 不會寫 Perl 的 Perlman
------
不會寫 Perl 的 Perlman
betty
一般會員


發表:11
回覆:21
積分:6
註冊:2002-09-18

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-02-20 09:58:45 IP:61.30.xxx.xxx 未訂閱
謝謝各位,我的問題解決了!!
evon
一般會員


發表:1
回覆:10
積分:2
註冊:2003-02-19

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-02-20 14:31:05 IP:211.78.xxx.xxx 未訂閱
討論區的給分制度不理想! 因該要相同於大富翁 BBS 給分制度,依每人幫助幅度給予分數。 下次不來了!...請版主將我的會員資料刪除! 謝謝!
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-02-21 14:50:21 IP:210.202.xxx.xxx 未訂閱
引言: 討論區的給分制度不理想! 因該要相同於大富翁 BBS 給分制度,依每人幫助幅度給予分數。 下次不來了!...請版主將我的會員資料刪除! 謝謝!
1.先感謝您對本站的建議 2.本站設計為一題一分當然會有失公平性, 但現在會員工作繁忙,太複雜的給分方式會失其效率, 更何況以現在的簡易給分方式都有很多會員不願指定給分! 3.答題得分為本站設計為鼓勵會員幫助新進解答問題, 來此討論區與各高手交個朋友互相切磋才是正題! 4.已刪除您的會員資料! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
系統時間:2024-05-05 11:31:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!