FM 的 TListbox 轉向問題 |
答題得分者是:Main Chen
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
JamesJuan
中階會員 發表:2 回覆:76 積分:80 註冊:2003-04-08 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
JamesJuan
中階會員 發表:2 回覆:76 積分:80 註冊:2003-04-08 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
JamesJuan
中階會員 發表:2 回覆:76 積分:80 註冊:2003-04-08 發送簡訊給我 |
|
Main Chen
高階會員 發表:29 回覆:135 積分:127 註冊:2002-10-07 發送簡訊給我 |
編輯記錄
Main Chen 重新編輯於 2014-03-13 11:45:03, 註解 無‧
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
感謝提供資料,
經下載測試, 碓實可以做到我想要的功能, 但有一個問題就是 如果是橫屏 放在右邊(alrightalign) 有5個listboxitem 分別是 1 2 3 4 5 改為直屏, 放在底端(albottomalign), 會變成 12345 但我想要的位置是 54321 ===================引 用 Main Chen 文 章=================== 這裡有一個用 TListBox 做的例子,也能參考一下: pan.baidu.com/s/1eQGGgIu |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
感謝分享
但我依網址去下載, 發現, 原本的 .7z檔是17K, 但選下載時變成 324K, 我下載後嘗試解開, 是exe格式, 進行安裝, 結果被裝了一堆該網址的軟體(而且下載時會出現18禁的網頁), 是否方便的話, 可以mail給我呢? 謝謝 download@mail.3ipd.com.tw ===================引 用 JamesJuan 文 章=================== PD 版大您好 我把程式碼上傳到下述網址了 www.mirrorcreator.com/files/0GRBT24U/OrientationTest.7z_links |
Main Chen
高階會員 發表:29 回覆:135 積分:127 註冊:2002-10-07 發送簡訊給我 |
加 Sort 功能就行了。
1. 在每個 Item.tag 設定 1 ~ 5 的數字。 2. 在 ListBox.OnCompare 加入下面程式: procedure TForm1.FormResize(Sender: TObject); begin .....略..... 加下面二行 ListBox1.Sorted := False; ListBox1.Sorted := True; end; procedure TForm1.ListBox1Compare(Item1, Item2: TListBoxItem; var Result: Integer); begin if Width > Height then begin if Item1.Tag = Item2.Tag then Result := EqualsValue else if Item1.Tag < Item2.Tag then Result := LessThanValue else Result := GreaterThanValue; end else begin if Item1.Tag = Item2.Tag then Result := EqualsValue else if Item1.Tag > Item2.Tag then Result := LessThanValue else Result := GreaterThanValue; end; end; 感謝提供資料, 經下載測試, 碓實可以做到我想要的功能, 但有一個問題就是 如果是橫屏 放在右邊(alrightalign) 有5個listboxitem 分別是 1 2 3 4 5 改為直屏, 放在底端(albottomalign), 會變成 12345 但我想要的位置是 54321 ===================引 用 Main Chen 文 章=================== 這裡有一個用 TListBox 做的例子,也能參考一下: pan.baidu.com/s/1eQGGgIu
編輯記錄
Main Chen 重新編輯於 2014-03-14 11:33:39, 註解 無‧
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
感謝 Chen 提供的方法, 經測試可以做到, 不過實測上我想修正一點
如果一開始 ListBox 不指定 sort, 而是透過後製指定, 手機翻幾次後, 整個Items 位置會玩大風吹 所以我一開始就指定sort, 然後後製不再指定, 這個問題就解決了 但現在又出現一個問題, 就是手機翻轉後, Items 有按順序出現, 但ListBox 會出現一大段空白, 如下示意圖 有時出現 ItemIndex= first 有時出現在 ItemIndex = last, 我試著在轉向時指定 ItemIndex 位置並沒有用, 所以還要再研究如何解決 ===================引 用 Main Chen 文 章=================== 加 Sort 功能就行了。 1. 在每個 Item.tag 設定 1 ~ 5 的數字。 2. 在 ListBox.OnCompare 加入下面程式: procedure TForm1.FormResize(Sender: TObject); begin .....略..... 加下面二行 ListBox1.Sorted := False; ListBox1.Sorted := True; end; procedure TForm1.ListBox1Compare(Item1, Item2: TListBoxItem; var Result: Integer); begin if Width > Height then begin if Item1.Tag = Item2.Tag then Result := EqualsValue else if Item1.Tag < Item2.Tag then Result := LessThanValue else Result := GreaterThanValue; end else begin if Item1.Tag = Item2.Tag then Result := EqualsValue else if Item1.Tag > Item2.Tag then Result := LessThanValue else Result := GreaterThanValue; end; end;
編輯記錄
P.D. 重新編輯於 2014-03-15 12:25:24, 註解 無‧
|
Main Chen
高階會員 發表:29 回覆:135 積分:127 註冊:2002-10-07 發送簡訊給我 |
可以取得螢幕 Width 並除以 5 後,再用迴圈去設定每一個 TListBoxItem 的 Width(橫屏) 或 Height(直屏) 就可以了。
===================引 用 P.D. 文 章=================== 感謝 Chen 提供的方法, 經測試可以做到, 不過實測上我想修正一點 如果一開始 ListBox 不指定 sort, 而是透過後製指定, 手機翻幾次後, 整個Items 位置會玩大風吹 所以我一開始就指定sort, 然後後製不再指定, 這個問題就解決了 但現在又出現一個問題, 就是手機翻轉後, Items 有按順序出現, 但ListBox 會出現一大段空白, 如下示意圖 有時出現 ItemIndex= first 有時出現在 ItemIndex = last, 我試著在轉向時指定 ItemIndex 位置並沒有用, 所以還要再研究如何解決 |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |