考慮作一個光棒選單, 想聽聽大家有什麼好建議, 使用什麼元件 |
答題得分者是:dllee
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
考慮作一個光棒選單, 想聽聽大家有什麼好建議, 使用什麼元件 (每一項其實是個 IP, 可以連到不同機器) 會有一個[新增]按鈕, 按下後可以新增一個選項 (這個小弟會做) 會有一個[刪除]按鈕, 按下後可以刪除一個選項 (這個小弟會做) 主要是思考用什麼來顯示選項? (選項, 帳號, 密碼可能放在純文字檔案中, 不會有資料庫) Button ? 數量是不固定的, 處理上有些麻煩 而且上下左右鍵在按鈕間跳來跳去似乎也有點麻煩, 要判斷是跑到哪個按鈕 而且選項可能一頁顯示不完 ComboBox ? 或許程式好處理些, 只是沒有辦法一目了然看到比較多項目 ListBox ? 可以看到比較多項目, 但是畫面做出來也是直長條狀 有辦法把 選項 作 M x N 陣列排放在畫面 ? 或者大家有其他建議 ?
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
看了幾篇您的說明,還是不太了解您想要的畫面...
是要像個 Grid 式,每個 Cell 位置都是一個選項嗎? 可以用 TListBox 設定 Columns 屬性為多個 Column 就可以有 M x N 的效果了。 另外,昨天看了 jow 的 [發表] 股票K線圖 ,用 TStringGrid 全部自已畫也是一個方法。 ■ VMASK - ViewMove Automation Software Kernel ■ VMIO-Server/SECS/GEM ■ dllee's blog ■ dllee's StatPlus ■
------
http://www.ViewMove.com |
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
對, 像 Grid
TStringGrid 有辦法在 Cell 上 Double Click 就去執行某動作嗎 ? 原來 ListBox 也可以多行使用, 但是如何在 5, 4 顯示一筆呢 ? (如果只有一行, ListBox1.Items.Add 是加在最後) 怎樣讀取目前在哪個位置? 是參考這個範例 ? [code cpp] procedure TForm1.Button1Click(Sender: TObject); var I: Integer; begin for I := 0 to Form1.ComponentCount-1 do ListBox1.Items.InsertObject(0, Form1.Components[I].Name, Form1.Components[I] as TObject); end; procedure TForm1.ListBox1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,Y: integer); var APoint: TPoint; Index: integer; TheObject: TControl; begin if Button = mbRight then begin APoint.X := X; APoint.Y := Y; Index := ListBox1.ItemAtPos(APoint, True); if (ListBox1.Items.Objects[Index] is TControl) then begin TheObject := (ListBox1.Items.Objects[Index] as TControl); StatusBar1.SimpleText := TheObject.Name ' is at (' IntToStr(TheObject.Left) ', ' IntToStr(TheObject.Top) ') '; end else Beep; end; end; [/code]
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
OnDblClick 沒有 Col/Row 的資訊,所以要配合 OnMouseDown ( 再配合 MouseToCell 取得 )
或是 OnSelectCell 取得 Col/Row 的資訊。 TListBox 多欄式只能自己去算目前選到的是在那個一位置,要在任一位置加應該是不好寫。 所以還是用 TStringGrid 會比較快。 ■ VMASK - ViewMove Automation Software Kernel ■ VMIO-Server/SECS/GEM ■ dllee's blog ■ dllee's StatPlus ■
------
http://www.ViewMove.com |
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
procedure ListGridMouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
var Arow,ACol :integer; begin if Button <> mbLeft then Exit; ListGrid.MouseToCell(X,Y,ACol,AROW); if (ACol>0) and (ARow>0) and (ssDouble in Shift) then XXXXXX end; 是不是版大太聰明,還是我太過愚笨。 還搞不清楚要幹嘛?光棒選單!@#?? |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
忘記了,本站是會把 On xxx 在 Java/HTML 可能操作的 code 會變成 forbidden
===================引 用 dllee 文 章=================== OnDblClick 沒有 Col/Row 的資訊,所以要配合 OnMouseDown ( 再配合 MouseToCell 取得 ) 或是 OnSelectCell 取得 Col/Row 的資訊。 TListBox 多欄式只能自己去算目前選到的是在那個一位置,要在任一位置加應該是不好寫。 所以還是用 TStringGrid 會比較快。 ■ VMASK - ViewMove Automation Software Kernel ■ VMIO-Server/SECS/GEM ■ dllee's blog ■ dllee's StatPlus ■
------
http://www.ViewMove.com |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |