掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Tframeの値の引き渡しについて (ID:150385)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こういうことかな?Delphi起動せずに書いてるので一部省略 type TFrame1=class(TFrame) private procedure Button1Click(Sender : TObject); end; これを procedure TForm1.Button2Click(Sender: TObject); begin TFrame1.Button1Click(); end; で呼び出せないのは何故か? 1.クラスの定義(型)とクラスそのもの(変数)が理解出来ていない 2.コントロールのイベントはpivate宣言なので他クラスから呼ぶべきではない (1) Delphiのエディタでフレームを追加する操作を行って Nameプロパティに「Frame1」と設定して完成するのは TFrame1という型が定義されただけで実体がどこにも存在していない Form1でTFrame1としてデザインしたフレームを使用する場合は Form1の上のuses宣言に TFrame1として保存したときのファイル名を書いてインクルード Form1のprivate宣言に FFrame1 : TFrame1; としてデザインしたフレームを使いますよと宣言 Form1のイベントに生成と破棄OnCreate OnDestroyイベントを作って OnCreate内で FFrame1 := TFrame1.Create(Self); FFrame1.Parent := Self; FFrame1.Algin := alClient; OnDestroy内で FFram1.Free; これでForm1が動いている間はFFrame1にTFrame1としてデザインされたフレームが反映されるので FFram1を通じてコントロールにはアクセス出来る ただしButton1Clickは呼べない 呼ぶにはというかその場合は ボタンを押したときに処理するプログラムをpublicに定義してその中で処理されるように作って Button1Clickでもその関数を呼ぶように作る 自分自身でフレームを生成して自動で配置する方法を想像して書きましたが 手動でフレームを置いた場合はどういう動きになるのか忘れました 一番最初の書き込みに >■フォーム1イベント >edit1.text:=Tframe.sample(); となっていますが、これを見ると型と値の区別が出来ていないような・・・
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.