3

必要に応じて、ラジオグループに存在するアイテムのテキストがテキストを折り返す方法について、Delphi5の小さな例が必要です。

Delphi 2006でbuttonsプロパティにアクセスして解決しましたが、D5ではこのプロパティは存在しません。

LE:SetWindowLong以外の解決策はありますか?

4

2 に答える 2

3

Controls無線グループのプロパティを反復処理することにより、Delphi5でボタンを簡単に取得できます。しかし、それでは、それらをラップさせるために何をするつもりですか?Delphi5ラジオボタンにはWordWrapプロパティがありません。

もし私があなたなら、ラジオグループを使うのではなく、たくさんのラジオボタンをグループボックスに追加します。これにより、作成するラジオボタンのクラスを正確に制御できます。次に、独自のラジオボタンクラスを派生させ、WordWrapプロパティを実装します。これを行うには、最新のDelphiバージョンと同様BS_MULTILINEに、にスタイルを追加する必要があります。CreateParams

もちろん、あなたの答えに概説されている方法もうまくいくでしょう!

于 2011-11-23T17:08:44.080 に答える
2

終わり。

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;
于 2011-11-23T16:59:40.240 に答える