掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
StringGridのObjectプロパティ (ID:45449)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こんにちは。 いつもお世話になっております。 開発環境は、win7(sp1)、delphiXE3enterprise(update適用なし)です。 随分前に同じような質問をしたんですが、また同じようなエラーで困っています。 画面は2つあります。 stringgridを貼ったリスト画面と、テキストボックス等を貼った入力画面です。 stringgridの列0(Objects[0,Row])にコードを格納しています。 リスト画面で抽出ボタンを押したときと、入力画面でOKボタン押したときです。 リスト画面には「新規作成」と「開く」メニューボタンがあります。 stringgridは行選択で、selectcellイベントでメニューボタンの「新規作成」「開く」の使用可否を列0のコードの有無で決めています。 抽出ボタンを押したとき、「新規作成」と「開く」の使用可否を決めるコードは動いています。 リスト画面の抽出ボタンを押したときと、入力画面でOKボタンを押したときはエラーは発生しません。 ただ、入力画面でOKボタンを押した後入力画面は閉じるのですが、その後で抽出ボタンを押したとき「モジュール'ABC.exe'のアドレス007357B6でアドレス00000000に対する読み取り違反が起きました。」と出ます。 ちなみにコードは以下の通りです。 リスト画面で抽出ボタンを押したときと、入力画面でOKボタン押したときのコード function fPString(s:string); begin New(result); result^:=s; end; with StringGrid1 do begin Objects[0,intRow]:=TObject(fPString(strData)); end; 「新規作成」「開く」の使用可否を決めるコード ToolButton1.enabled:=length(PString(Objects[0,Row])^)=0; ToolButton2.enabled:=not ToolButton1.enabled; 入力画面からobjectプロパティに書き込む前に以下のようにfreeしたんですが、そのfreeのところで上記と同じようなエラーメッセージが出ました。 for t := 0 to ColCount-1 do begin Objects[t,intRow].Free; end; 正直どうなっているのか分かりません。 どうにかエラーを解除できないものでしょうか? よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.