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

考慮作一個光棒選單, 想聽聽大家有什麼好建議, 使用什麼元件

答題得分者是:dllee
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-10-01 11:29:58 IP:210.241.xxx.xxx 訂閱
考慮作一個光棒選單, 想聽聽大家有什麼好建議, 使用什麼元件
(每一項其實是個 IP, 可以連到不同機器)
會有一個[新增]按鈕, 按下後可以新增一個選項 (這個小弟會做)
會有一個[刪除]按鈕, 按下後可以刪除一個選項 (這個小弟會做)
主要是思考用什麼來顯示選項? (選項, 帳號, 密碼可能放在純文字檔案中, 不會有資料庫)
Button ? 數量是不固定的, 處理上有些麻煩
而且上下左右鍵在按鈕間跳來跳去似乎也有點麻煩, 要判斷是跑到哪個按鈕
而且選項可能一頁顯示不完
ComboBox ? 或許程式好處理些, 只是沒有辦法一目了然看到比較多項目
ListBox ? 可以看到比較多項目, 但是畫面做出來也是直長條狀
有辦法把 選項 作 M x N 陣列排放在畫面 ?
或者大家有其他建議 ?
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-10-01 12:59:50 IP:220.134.xxx.xxx 訂閱
看了幾篇您的說明,還是不太了解您想要的畫面...
是要像個 Grid 式,每個 Cell 位置都是一個選項嗎?
可以用 TListBox 設定 Columns 屬性為多個 Column
就可以有 M x N 的效果了。
另外,昨天看了 jow[發表] 股票K線圖 ,用 TStringGrid 全部自已畫也是一個方法。
VMASK - ViewMove Automation Software KernelVMIO-Server/SECS/GEMdllee's blogdllee's StatPlus
------
http://www.ViewMove.com
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-10-01 13:11:24 IP:61.220.xxx.xxx 訂閱
對, 像 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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-10-01 13:20:23 IP:220.134.xxx.xxx 訂閱
OnDblClick 沒有 Col/Row 的資訊,所以要配合 OnMouseDown ( 再配合 MouseToCell 取得 )
或是 OnSelectCell 取得 Col/Row 的資訊。

TListBox 多欄式只能自己去算目前選到的是在那個一位置,要在任一位置加應該是不好寫。
所以還是用 TStringGrid 會比較快。

VMASK - ViewMove Automation Software KernelVMIO-Server/SECS/GEMdllee's blogdllee's StatPlus
------
http://www.ViewMove.com
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-10-01 13:26:49 IP:61.220.xxx.xxx 訂閱
forbidden <== 您原本想寫什麼 ?
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-10-01 16:51:00 IP:61.222.xxx.xxx 訂閱
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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-10-01 18:38:57 IP:220.134.xxx.xxx 訂閱
忘記了,本站是會把 On xxx 在 Java/HTML 可能操作的 code 會變成 forbidden

===================引 用 dllee 文 章===================
OnDblClick 沒有 Col/Row 的資訊,所以要配合 OnMouseDown ( 再配合 MouseToCell 取得 )
或是 OnSelectCell 取得 Col/Row 的資訊。

TListBox 多欄式只能自己去算目前選到的是在那個一位置,要在任一位置加應該是不好寫。
所以還是用 TStringGrid 會比較快。

VMASK - ViewMove Automation Software KernelVMIO-Server/SECS/GEMdllee's blogdllee's StatPlus
------
http://www.ViewMove.com
系統時間:2024-05-04 5:34:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!