別フォームの表示情報の更新

解決


本日快晴  2015-03-27 22:48:21  No: 47169

質問させて頂きます。

登録した情報を表示するメインフォームとメインフォームから登録ボタンを押すと登録フォームが立ち上がり情報を登録できる二つのフォームを作りました。

登録を行った後にメインフォームへ戻ると登録した情報が更新され新しい情報が表示されるように作りましたが、これを登録フォームを消さずに連続して登録を行えるようにしたいと依頼を受けて連続して登録出来るように修正しました。
ここでメインフォームへ戻らないと登録した情報が更新されずに同じ情報を打ってしまいそうだと指摘を受けて一件登録した時点で登録画面を消さずにメインフォームの表示が更新されるようにして欲しいと再度依頼を受けました。

メインフォームで行っているイベントを別のフォームで指定し実行することは可能でしょうか?
プログラムを触り始めて間もない初心者なので質問の内容もわかりにくいかと思いますが、わかる方がいれば教えて頂ければと思います。

よろしくお願いします。


igy  2015-03-28 07:05:47  No: 47170

>メインフォームで行っているイベントを別のフォームで指定し実行することは可能でしょうか?

ソースコードが挙げられていないので、具体的には、わかりませんが、
(たぶん)可能だと思います。


HOta  2015-03-28 23:20:53  No: 47171

メッセージで処理するのはいかがですか?


通りすがり  2015-03-29 21:26:20  No: 47172

> 可能でしょうか?
という質問だと、可能です、という回答しかもらえないと思います。
もう少し具体性のある形で、現状こうしているんだけど、とか、できればサンプル的に動くものを提示して、
どういうように考えればいいですか?みたいな質問のしかたのほうがいいでしょう。
ちなみにどうすればいいか、ですが、登録フォームに登録を行ったことを通知するためのイベントを作り、
メインフォームではそのイベントに表示更新を行うイベントハンドラを結びつける、というのが一般的かと。


本日快晴  2015-03-30 17:53:24  No: 47173

通りすがりさん、
おっしゃったとおり自分の質問では、方法までは聞いていませんでした。
ありがとうございます。

procedure TFrmMain.bbtnInsertClick(Sender: TObject);
begin
  // 登録
  FrmRegbox := TFrmRegbox.Create(Self);
  try
    FrmRegbox._KNO := 0;
    if FrmRegbox.ShowModal = mrOk then begin
      ADOQMei.Requery();
      if not (ADOQMei.Bof and ADOQMei.Eof) then
        ADOQMei.Locate('KNO',FrmRegbox._KNO,[loCaseInsensitive, loPartialKey]);
    end;
  finally
    FrmRegbox.Release;
  end;
  Proc_DispDBG;
end;

procedure TFrmRegbox.bbtnAddDataClick(Sender: TObject);
begin
  if Func_ChkReg then
  begin
    if FintKNO > 0 then
    begin
      Proc_Update;
      if FintKNO = -1 then ModalResult := mrCancel else ModalResult := mrOk;
    end else
    begin
      Proc_Insert;
    end;
  end;
end;

上記に書いたソースがメインフォームから登録フォームを表示させ、登録後に登録フォームを閉じるとメインフォームが更新されるようにしたソースです。
これを私が希望した動きにするにはどのようにすれば良いでしょうか?


本日晴天  2015-03-31 00:23:29  No: 47174

子フォームからメインフォームへデータの受渡が出来ることがわかり、
メインフォームでデータグリッドを管理しているADOQを子フォームから
『.Requery』したら更新が出来ました。

解答をいただいた皆さんありがとうございました。

質問の意図が明確に記載して無くすみませんでした。
今後もこちらで質問をすると思いますが、よろしくお願いします。


本日晴天  2015-03-31 00:24:43  No: 47175

ありがとうございました。


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

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






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