RadioGroup内にLabelを設置するには

解決


らた  2008-06-10 20:28:35  No: 30965

RadioGroup内にLabelとEditを設置しようとしています。
EditはできたのですがLabelはできません。
どうやってもRadioGroupの背面に隠れてしまいます
なにかよい方法はないのでしょうか

環境はDelphi7です。


igy  2008-06-10 21:32:21  No: 30966

RadioGroupを使わずに、GroupBox と RadioButton を組み合わせて
使うのはどうですか?


  2008-06-11 05:45:46  No: 30967

Editのプロパティ
BorderStyle→bsNoneで縁が無くなり平面に。
Color→clBtnFace(デフォルトの?コンポーネントカラー)
と言う手はどうでしょうか。


ttt  2008-06-11 06:30:27  No: 30968

TStaticTextは?


みんみん  2008-06-11 08:56:26  No: 30969

実行時に親コントロールを変える方法もあるかもです。

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Parent :=RadioGroup1;
  //RadioGroupの左上を(0, 0)としてお好みの位置に
  Label1.Left :=50; Label1.Top :=50;
end;


KHE00221  2008-06-11 10:31:54  No: 30970

ControlStyle に csAcceptsControls が無いから上に乗せる事はできない。

(Editは RaidoGroup より前面に表示されているだけで 
 RadioGroupの上に設置されているわけではない)

(Label は TGraphiControl なので TWinControl より
前面に表示させる事ができないので無理)

TStaticText は TWinControl なので前面に表示する事が可能

動的ならば Parent 変更で上に乗せることが可能

一番手っ取り早いのが GroupBox と RadioButton で済ますこと

コンポーネントを作るなら

  TRadioGroupEx = class(TRadioGroup)
  private
  protected
  public
  published
    constructor Create(AOwner: TComponent); override;
  end;

procedure Register;

implementation

constructor TRadioGroupEx.Create(AOwner: TComponent);
begin
    inherited;
    ControlStyle := ControlStyle + [csAcceptsControls];
end;

とすれば上に乗せられる RadioGroup ができる


らた  2008-06-12 04:17:41  No: 30971

とりあえず  あ  さんの方法で
やってみました。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加