EStringListErrorクラスの例外を生成しました

解決


Delphier  2006-05-11 16:27:39  No: 21456  IP: 192.*.*.*

プログラムの実行直後に下記エラーが発生し、解決法が分かりません。

<エラー内容>(全文)
デバッガ例外が発生
プロジェクトxxxxxがEStringListErrorクラスの例外を生成しました。
リストのインデックスが範囲を超えています(0)
プロセスは停止しています。再開するにはステップ実行または実行を選択
してください。


<環境>
Windows2000 Pro
Borland Delphi Professional Version6.0

<コード抜粋>
program xxxxxxx

uses
   Forms,
   Main in 'Main.pas' {Main_frm};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TMain_frm,Main_frm); -->この後、☆へ飛ぶ
  Application.Run
end.

☆classes.pas内(コード抜粋)
procedure TString.Error(const Msg: String; Data: Integer);
  
  function ReturnAddr: Pointer;
  asm

      MOV   EAX,[EBP+4]
  end;

begin
 raise EStringListError.CreateFmt(Msg, [Data]) at ReturnAddr;
 -->ここで、エラー発生します。
end;


上記エラーに関して、同じようなことを遭遇された方、もしくは、何かアドバイスを頂ける方、よろしくお願いします。

編集 削除
でるふぁい  2006-05-11 17:31:40  No: 21457  IP: 192.*.*.*

フォームの OnCreate でナニやってるの?

編集 削除
igy  2006-05-11 17:34:09  No: 21458  IP: 192.*.*.*

>プロジェクトxxxxxがEStringListErrorクラスの例外を生成しました。
>リストのインデックスが範囲を超えています(0)

とのことなので、

TStringListやTListBoxなどで、範囲以外の部分にアクセスしている
のでは?

編集 削除
Delphier  2006-05-11 17:36:55  No: 21459  IP: 192.*.*.*

ご返答ありがとうございました。

実は、DELPHI初心者でして、エラー現象をそのまま記載しました。
OnCreateの意味もよくわかりません・・・。

このプログラムは、現在、動作しているのですが、一部内容を改良し、
再度コンパイルしたところ、このようなエラーが出ました。

編集 削除
Delphier  2006-05-11 17:42:43  No: 21460  IP: 192.*.*.*

オブジェクトインスペクタ内を見ても、TStringListやTListBoxの
オブジェクトは使用していないです。

編集 削除
HOta  2006-05-11 17:43:30  No: 21461  IP: 192.*.*.*

変更した部分のソースを上げてみて下さい。
このままでは解りません。
OnCreateは、ソースのFormCreateイベントです。
今まで動いていて、修正したらエラーになったのならば、
修正した部分にエラーがあります。

編集 削除
Delphier  2006-05-11 17:49:35  No: 21462  IP: 192.*.*.*

わかりました。ありがとうございます。

都合上、明日、プログラムを提示させて頂きますので、
よろしくお願いします。

ちなみに、変更点は、たとえば、

strCCFileName := GetLastFileName(strFileDir + 'CC??????');

上記を
strCCFileName := GetLastFileName(strFileDir + 'C??????');

と変更したくらいです。数箇所程度です。他の変更はありません。

編集 削除
 2006-05-11 18:42:44  No: 21463  IP: 192.*.*.*

>  raise EStringListError.CreateFmt(Msg, [Data]) at ReturnAddr;
ここにブレークポイントいれて、飛んできたときに「呼び出し履歴」から遡る

編集 削除
Delphier  2006-05-12 11:00:55  No: 21464  IP: 192.*.*.*

ご返信ありがとうございました。

このプログラムに関しては、INIファイルとセットで
実行することになっており、このINIファイルを調査した所、
不足していた設定項目があり修正したら特にエラーもなく
実行できました。

返信してくださった方々、ありがとうございました。

呼び出し履歴など、知らなかったこともありましたので、
勉強になりました。

編集 削除