RadioGroup内にLabelとEditを設置しようとしています。
EditはできたのですがLabelはできません。
どうやってもRadioGroupの背面に隠れてしまいます
なにかよい方法はないのでしょうか
環境はDelphi7です。
RadioGroupを使わずに、GroupBox と RadioButton を組み合わせて
使うのはどうですか?
Editのプロパティ
BorderStyle→bsNoneで縁が無くなり平面に。
Color→clBtnFace(デフォルトの?コンポーネントカラー)
と言う手はどうでしょうか。
TStaticTextは?
実行時に親コントロールを変える方法もあるかもです。
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Parent :=RadioGroup1;
//RadioGroupの左上を(0, 0)としてお好みの位置に
Label1.Left :=50; Label1.Top :=50;
end;
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 ができる
とりあえず あ さんの方法で
やってみました。
ありがとうございました。
ツイート | ![]() |