0

フォームの新しいインスタンスを作成し、それを PANEL の子として表示しようとしています。しかし、フォームは使用できないようです。つまり、テキストボックスを編集できません。しかし、クリックできるように見えるツリーやボタンなどのコントロールは他にもあります。

コードは次のとおりです。

procedure TForm1.ProcfrmSetupItemCategories;
var
  NewForm: TfrmSetupItemCategories;
begin
  NewForm:=TfrmSetupItemCategories.Create(BodyPanel);

  NewForm.Parent := BodyPanel;
  NewForm.Top:=5;
  NewForm.Left:=5;
  NewForm.Show;
end;

しかし、行を削除するとNewForm.Parent := BodyPanel;、フォームは編集可能ですが、親フォーム/パネルから出てしまいます。

また、親が設定されている場合、子フォームはアクティブではありません (タイトル バーを見てください)。

何か不足していますか?ご意見をお聞かせください。ありがとう!

4

1 に答える 1

0

Form は、他のフォームまたは TApplication の子である必要があります。TPanel はフォームの管理方法を認識していないため、フォームはアクティブ化されず、そのコンポーネントはフォーカスを受けません。

代わりに、通常のフォームを使用して、フォームを整列させる手順を記述できます。メイン フォームにタイマーを追加し、ontimer イベントからアライメント プロシージャを呼び出します。ユーザーがメイン フォームを移動またはサイズ変更すると、他のフォームが再調整されます。

Dave Peters DP ソフトウェア

于 2012-11-03T15:31:29.057 に答える