掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MDI親フォームから、子フォームのコンポーネントのプロパティを操作 (ID:13204)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
はじめまして。今日Delphiをはじめました。 とても初歩的(だと思われる)質問なのですが、 Delphiのヘルプや、ウェブでのキーワード検索の結果をみてもわからなかったので、質問させてください。 <開発環境> Delphi 6 Personal WindowsXP professional <何をつくっているか> 今日はじめたばかりなので付属のヘルプファイルのチュートリアルを見ながらメモ帳をつくってたのですが、そのまま作ったのでは面白くないとおもい、ユニットを二つ使って、親フォームのTabControlと、エディタ部分を持つ子フォームの動作を連動させてタブ型のエディタを作っています。 <何をしたいのか> 複数ある子フォームの表示形式を一気に変えたい(フォント、折り返し、スクロールバーなど) たとえば、メニューの「右端で折り返す」にチェックを入れると ①以降開かれる子フォームのWordWrapはみなTrueになる。 ②今表示されている子フォームのWordWrapがみなTrueになる フォントなどについても同様です。 <そのために何をしたか> 親フォームのユニット(NameはMain)のソースに子フォーム(NameはChild,複数生成される可能性のあるフォームです。)のエディターのプロパティのフォントを操作するために以下のソースコードを書きました。 <ソース関係のあると思われる部分> --------------------------------------------------- procedure TMain.Font1Click(Sender: TObject); begin if FontDialog1.Execute then begin if FontDialog1.Execute then Child.Memo1.Font := FontDialog1.Font ; end ; end; ------------------------------------------------------ <実行結果> フォントダイアログがでる。→フォントやサイズなどを選ぶことはできる→OKを押すと、フォントダイアログが再びロードされる→その状態からもう一回OKをおすと、 --------------------------- デバッガ例外が発生 --------------------------- プロジェクト Editor.exe が EAccessViolation クラスの例外を生成しました。 'Access violation at address 00482361 in module 'Editor.exe'. Read of address 000002F0' プロセスは停止しています。再開するにはステップ実行または実行を選択してください。 --------------------------- というメッセージが出てくる。→さらに続けて実行すると --------------------------- editor --------------------------- Access violation at address 00482361 in module 'Editor.exe'. Read of address 000002F0. --------------------------- OK --------------------------- というメッセージが出てくる 子フォームがCreateされている場合、されていない場合で同じ挙動を示しました。そもそも、Createされていないもののプロパティを操作することはできないのでは?と思い子フォームのTMemoコンポーネントのデフォルトプロパティを操作すればよいのでは?と思ったのですが、ヘルプファイルを見る限りでは、僕には「コンポーネント作成の時のデフォルトプロパティの宣言」にかかわる項目しか見つけられませんでした。 どうか、よろしくおねがいします。 からたけ。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.