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

解決


Delphier  2006-05-12 01:27:39  No: 21456

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

<エラー内容>(全文)
デバッガ例外が発生
プロジェクト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-12 02:31:40  No: 21457

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


igy  2006-05-12 02:34:09  No: 21458

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

とのことなので、

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


Delphier  2006-05-12 02:36:55  No: 21459

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

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

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


Delphier  2006-05-12 02:42:43  No: 21460

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


HOta  2006-05-12 02:43:30  No: 21461

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


Delphier  2006-05-12 02:49:35  No: 21462

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

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

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

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

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

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


  2006-05-12 03:42:44  No: 21463

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


Delphier  2006-05-12 20:00:55  No: 21464

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

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

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加