お知恵を拝借したいのですが、起動時に一度だけ、ドッキングさせたいんですが、
Form2.ManualDock(Panel1);
CreateやOnShowではエラーになる、かといてOnPrintではアクティブにするたびにドッキングしてしまう。
セオリーは、どういう方法なんでしょうか?
まぁ、Timerか、なにかフラグを立てて、1度実行したら、それ以降は無視しちゃえばいいんですが・・・。
こういう、起動時に一度だけ実行するけど、エラーになる事柄って、どういう方法がセオリーなんでしょう?
>>OnShowではエラーになる
なりませんです。はい。
procedure TAddMemoMainForm.FormPaint(Sender: TObject);
begin
OnPaint:=nil;
//ここに一度だけやりたいことを書く
end;
そうか、対象にもよるのかな?
Form2.ManualDock(Form1.Panel1);
Form1のパネルに、Form2をまるまるドッキングです。
これだと、OnShowだと、
デバッガ例外が発生。
Onshow/OnHideイベント処理中は、表示状態の変更は出来ません。
ってなるんですよねー。
一応、念のために、form1,form2の両方で試してみました。
dlephi6です。
Onshowイベントで
Form2.ManualDock(Form1.Panel1);
これだけなら例外は発生しない。ほかに何かやってるんじゃない?
うーむ、そうなると上にのかってるものが原因かな?
何だろう?
もう分からないから、OnPrintで、フラグで処理しちゃおうかなー。
みなさん、ありがとうございました。
どうやら、こちら側の問題のようなので、すこし調べてみます。
ツイート | ![]() |