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

RadioGroup是否可以有滾動條

尚未結案
Leonli
一般會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-20 23:44:00 IP:61.152.xxx.xxx 未訂閱
我用一個RadioGroup元件,動態創建裏面的button要單選項目的,但如果button很多的時候,不會出現滾動條上下拉動,請問可以在什麽地方設置呢?
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-21 10:24:54 IP:218.163.xxx.xxx 未訂閱
據我所知 RadioGroup 元件,不會出現滾動條. 把 RadioGroup元件 置於 TScrollBox 上, 可以達到類似的效果.
Leonli
一般會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-21 11:27:32 IP:220.248.xxx.xxx 未訂閱
我按照您的方法做了,發現沒有效果耶。我把radiogroup放在Form上面動態創建時還可以顯示裏面的button,可是放到ScrollBox裏面以後,button也看不見了。
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-21 13:02:07 IP:218.163.xxx.xxx 未訂閱
不是很清楚... button 是 RadioButton ? TButton ? 如果是動態創建 TRadioGroup 的 RadioButton...增加方法應該如下 : RadioGroup.Items.add('xxx')
Leonli
一般會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-21 16:02:25 IP:220.248.xxx.xxx 未訂閱
我用的是 radiogroup1.items.addobject(aaa,bbb);
wameng
版主


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-22 10:57:06 IP:61.222.xxx.xxx 未訂閱
難!既使做出來,也很醜。 會遮住Caption 使 TRadioGroup 有滾動條並不難。
在
procedure TRadioGroup.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  with Params do
  begin
    Style := Style or WS_VSCROLL;
  end;
end;    但這樣不夠的,除了要設定 ScrollInfo 的Range 及接管WM_VSCROLL訊息外。
還需自行設定 Item 的位置。主要是 TRadioGroup 是用平均分配位置的方式,
透過 ArrangeButtons 。    因此也需接管AlignControls 事件並 Override; 像是如下:
procedure TRadioGroup.AlignControls(AControl: TControl; var Rect: TRect);
Const
  ButtonHeight = 15;
var
  I,CaptionH:Integer;
begin
  CaptionH := Canvas.TextHeight('H');
  if AControl is TRadioButton then
     for I:=0 to ControlCount-1 do
       if Controls[I]=AControl then
       begin
         SetWindowPos(AControl.Handle,HWND_TOP
                     ,2,2   CaptionH   (ButtonHeight*I)
                     ,Width-4,ButtonHeight,SWP_NOZORDER or SWP_NOACTIVATE);
         Break;
       end;
end;
因此...... !@#$%^ 除了重新改寫 TRadioGroup外,不會有更好的作法。 建議用 TGroupBox CheckListbox 。頂多將方塊改為選項的方式。 從這裡著手,會比較容易些! ~~~~~~~~~~~ 難得聰明,常常糊塗。 ~~~~~~~~~~~ 發表人 - wameng 於 2005/07/22 11:02:02
系統時間:2024-11-23 12:43:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!