我需要在Delphi 5上的一個小例子,如何在一個radiogroup存在項目的文本包裝文本,如果需要。delphi - TRadioGroup與物品包裝
我在Delphi 2006中通過訪問buttons屬性解決了它,但是在D5中這個屬性不存在。
LE:有什麼解決方案,除了SetWindowLong嗎?
我需要在Delphi 5上的一個小例子,如何在一個radiogroup存在項目的文本包裝文本,如果需要。delphi - TRadioGroup與物品包裝
我在Delphi 2006中通過訪問buttons屬性解決了它,但是在D5中這個屬性不存在。
LE:有什麼解決方案,除了SetWindowLong嗎?
完成。
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
rbs: DWORD;
rb: TRadioButton;
begin
with RadioGroup1 do
begin
for i := 0 to ControlCount-1 do
begin
rb := radiogroup1.controls[i] as TRadioButton;
rbs := GetWindowLong(rb.Handle, GWL_STYLE);
rbs := rbs or BS_MULTILINE or BS_TOP;
SetWindowLong(rb.Handle, GWL_STYLE, rbs);
end ;
Invalidate;
end ;
end;
在Delphi 5中,您可以通過迭代廣播組的Controls
屬性來輕鬆獲得按鈕。但是,你打算怎麼做才能讓它們包裹? Delphi 5單選按鈕沒有WordWrap
屬性。
如果我是你,我會添加一堆單選按鈕到一個組框,而不是使用無線電組。這使您可以控制您創建的單選按鈕類型。然後派生自己的單選按鈕類並實現WordWrap
屬性。要做到這一點,您需要在CreateParams
中添加BS_MULTILINE
樣式,就像現代的Delphi版本一樣。
當然,您的答案中概述的方法也可以!
這就是我做到的。+ 1 – RBA
順便說一下,我寫我的時候沒有看到你的答案。我正在忙着探索我的舊版本的Delphi版本! –
如何做到這一點的跡象是非常有用的。我發佈了這個問題,然後編寫了代碼。無論如何,你非常快! – RBA