Form1のButton1Click内容をForm2のButton2Clickで行うには?

解決


ゆき  2003-10-29 05:28:09  No: 5489

よろしくお願いします。
フォーム1にあるボタンをクリックすると計算を行いフォーム2に結果を表
示します。この機能(計算方法)と全く同じ計算方法のボタンをフォーム2に用意するのですが、このボタンをクリックするとフォーム1のボタンをクリックしたと同様に計算させる事はできますか?
エクセルのVBAの話で申し訳ないのですが同じモジュール内でしたらボタ
ンに同じマクロ名を登録すればよかったのですが、フォーム2のイベントを
探したのですがOnClickイベントにはフォーム2内のprocedure名のみ表示さ
れ選択できません。
どなたかご存知でしたら教えてください。よろしくお願いします。


にしの  2003-10-29 05:40:52  No: 5490

フォーム2のunitの、最初のusesに、フォーム1のunitを追加すればオブジェクトインスペクタ上でできますよ。

ただし、フォーム1上にあるプロシージャから、たとえばEdit1とすると、フォーム2のButton.OnClickに定義してもやはりフォーム1のEdit1を使うことになります。
# 当たり前ですが念のため


ゆき  2003-10-29 07:16:55  No: 5491

にしのさんご返答ありがとうございます。
実は分かりやすく質問するためにフォームの番号を変えていました。
(質問時)(本  当)
    1  →    3
    2  →    6
>フォーム2のunitの、最初のusesに、フォーム1のunitを追加
ちょっと分からなかったのですが、フォーム6のunitの最初のusesを
uses
  Windows, Messages, SysUtils, Variants, Classes, 
  Graphics, Controls, Forms,Dialogs, Grids, StdCtrls, 
  ExtCtrls, jpeg,Unit3;
Unit3を記入してフォーム6のButton.OnClickに定義しようと
したのですが出てくるリストが当初と変わりません。
まだ何かたりませんでしょうか?ご指導お願いいたします。


にしの  2003-10-29 08:13:33  No: 5492

すみません、別なことと勘違いしていました。
イベントのプロシージャは、privateな関数なのでできませんね。

コーディングで何とかするしかありません。
Unit3のForm3に、Button3があり、すでにOnClickイベントが割り当てられているとします。
Form6にも、Button3があり、こちらにはOnClickイベントが割り当てられていないとします。

Unit6の、uses節に、Unit3を追加します。
次に、Form6のOnCreateイベントで、
Button6.OnClick := Form3.Button3.OnClick;
こうすれば、Button6のOnClickイベントに、Form3のButton3のOnClickイベントが割り当てられます。


ゆき  2003-10-29 09:03:12  No: 5493

にしのさんこんばんは。遅くまですみません。
Unit6のuses節には既に(いつのまに?)Unit3がありました。
Form6のOnCreateイベントは別の内容がありましたが最後の行に
Button4.OnClick := Form3.Button3.OnClick;
を入れ実行したら実にいい感じに動いてくれました。
Delphiではこのようにして割り当てをするのですね。よく覚えときます。
お忙しいところ本当にありがとうございました。


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

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






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