よろしくお願いします。
フォーム1にあるボタンをクリックすると計算を行いフォーム2に結果を表
示します。この機能(計算方法)と全く同じ計算方法のボタンをフォーム2に用意するのですが、このボタンをクリックするとフォーム1のボタンをクリックしたと同様に計算させる事はできますか?
エクセルのVBAの話で申し訳ないのですが同じモジュール内でしたらボタ
ンに同じマクロ名を登録すればよかったのですが、フォーム2のイベントを
探したのですがOnClickイベントにはフォーム2内のprocedure名のみ表示さ
れ選択できません。
どなたかご存知でしたら教えてください。よろしくお願いします。
フォーム2のunitの、最初のusesに、フォーム1のunitを追加すればオブジェクトインスペクタ上でできますよ。
ただし、フォーム1上にあるプロシージャから、たとえばEdit1とすると、フォーム2のButton.OnClickに定義してもやはりフォーム1のEdit1を使うことになります。
# 当たり前ですが念のため
にしのさんご返答ありがとうございます。
実は分かりやすく質問するためにフォームの番号を変えていました。
(質問時)(本 当)
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に定義しようと
したのですが出てくるリストが当初と変わりません。
まだ何かたりませんでしょうか?ご指導お願いいたします。
すみません、別なことと勘違いしていました。
イベントのプロシージャは、privateな関数なのでできませんね。
コーディングで何とかするしかありません。
Unit3のForm3に、Button3があり、すでにOnClickイベントが割り当てられているとします。
Form6にも、Button3があり、こちらにはOnClickイベントが割り当てられていないとします。
Unit6の、uses節に、Unit3を追加します。
次に、Form6のOnCreateイベントで、
Button6.OnClick := Form3.Button3.OnClick;
こうすれば、Button6のOnClickイベントに、Form3のButton3のOnClickイベントが割り当てられます。
にしのさんこんばんは。遅くまですみません。
Unit6のuses節には既に(いつのまに?)Unit3がありました。
Form6のOnCreateイベントは別の内容がありましたが最後の行に
Button4.OnClick := Form3.Button3.OnClick;
を入れ実行したら実にいい感じに動いてくれました。
Delphiではこのようにして割り当てをするのですね。よく覚えときます。
お忙しいところ本当にありがとうございました。
ツイート | ![]() |