PDA

View Full Version : پیغام خطا



moradii
چهارشنبه 11 شهریور 1383, 13:06 عصر
با سلام
دوستان در برنامه ای که نوشته ام بیشتر اوقات در هنگام اجرای برنامه پیغام زیر راصادر
میکند .بعضی اوقات بعد از یکی دوبار کامپایل کردن درست میشود.لازم به ذکر است که فرم اصلی برنامه اجرا میشود اما اگر بخواهم منویی را اجرا کنم که نیاز به فرم جدید داشته باشد پیغام فوق صادر میگردد.

moradii
چهارشنبه 11 شهریور 1383, 14:05 عصر
لطفا یکی جواب بده
ممنون :)

Mohammad S
چهارشنبه 11 شهریور 1383, 14:12 عصر
آیا فرم های برنامه تان را از حالت AutoCreate خارج نکرده اید؟ در منوی Project گزینه Options. یا باید تمام فرمهای برنامه در سمت چپ قرار داشته باشند (سربرگ Forms) و یا اگر فرمی به سمت راست منتقل شده، باید خودتان دستورات Create آن را بنویسید. به این صورت.

Application.CreateForm(TForm1,Form1);

موفق باشید

moradii
چهارشنبه 11 شهریور 1383, 15:28 عصر
فرم های برنامه در حالت AutoCreate میباشند.

Mohammad S
چهارشنبه 11 شهریور 1383, 22:36 عصر
با این حساب باید برنامه را Trace کنی توسط کلیدهای F7 یا F8 تا محل بروز خطا و علت آن را بیابی. این خطا مربوط به دستیابی اشتباه به حافظه می باشد. که آن محل وجود ندارد.

:o

moradii
پنج شنبه 12 شهریور 1383, 09:39 صبح
با این حساب باید برنامه را Trace کنی توسط کلیدهای F7 یا F8 تا محل بروز خطا و علت آن را بیابی. این خطا مربوط به دستیابی اشتباه به حافظه می باشد. که آن محل وجود ندارد.

:o
این کار را هم کرده ام تا به دستور showmodal فرم میرسد پیغام فوق را صادر میکند.

Mohammad S
پنج شنبه 12 شهریور 1383, 14:59 عصر
با F7 عمل Trace را انجام می دهید یا F8؟

moradii
شنبه 14 شهریور 1383, 09:26 صبح
با F7 عمل Trace را انجام می دهید یا F8؟
باکلید f7 عمل trac راانجام داده ام تابه دستور showmodal فرم میرسد پیغام فوق را صادر میکند.البته قبلا هم گفتم همیشه پیغام نمیدهد.

MSK
شنبه 14 شهریور 1383, 12:30 عصر
برای من هم گاهی اوقات جنین مشکلاتی پیش می آید.
اطمینان ندارم ولی فکر می کنم گاهی اوقات دلفی در ترجمه برنامه اشتباه می کنه و حاصل یه سری عمل که در الگوریتم درسته یه برنامه می شه که در عمل اشتباه میکنه. :shock:

البته یه حدسه. :متفکر:

ولی من معمولا در این مواقع همه برنامه رو دباره می نویسم و سعی می کنم از یه الگوریتم دیگه استفاده کنم ویا لااقل ضاحر کد رو عوض کنم(مرتب تر و منطقی تر)و در مکان دیگری در پوشه ی جداگانه و مرتب سیو کنم و همه پروژه رو چند با build کنم. :مخالف:

البته این یه حدسه و هیچ تضمینی نیست که ایراد از این جا باشه ولی این کار این شانس رو بوجود میاره که ایراد تصادفا حذف بشه یا معلوم بشه. :قهر:

moradii
شنبه 14 شهریور 1383, 13:46 عصر
هیچکس کمک نمیکنه؟! :cry:

SalarSoft
شنبه 14 شهریور 1383, 14:14 عصر
مشکل شما اینه که یه دسترسی غیر مجاز به یک کلاس انجام میشه!
یعنی ممکنه که اون کلاس ایجاد نشده باشه! یا در جایی Free شده باشه!

به احتمال بسیار زیاد شما در تعریف فرم جدید اشتباهی انجام داده اید.

اگر کد کامل را اینجا بگذارید بیشتر می توانیم کمکتان کنیم! :)

moradii
شنبه 14 شهریور 1383, 15:58 عصر
مشکل شما اینه که یه دسترسی غیر مجاز به یک کلاس انجام میشه!
یعنی ممکنه که اون کلاس ایجاد نشده باشه! یا در جایی Free شده باشه!

به احتمال بسیار زیاد شما در تعریف فرم جدید اشتباهی انجام داده اید.

اگر کد کامل را اینجا بگذارید بیشتر می توانیم کمکتان کنیم! :)

کد برنامه
unit MAIN_UNIT;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, PJColourPopupMenu;

type
Tmainform = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
N19: TMenuItem;
N20: TMenuItem;
N21: TMenuItem;
procedure N12Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N15Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N18Click(Sender: TObject);
procedure N20Click(Sender: TObject);
procedure N19Click(Sender: TObject);
procedure N21Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
mainform: Tmainform;

implementation

uses DATAMODUL, kh_unit, gh_unit, gh1_unit, gh2_unit, GlobFunc,
ch_kh_unit, Vam_Unit, T_ch_unit, B_ch_unit, fish_Unit, SHARJ_Unit,
Sandogh_Unit, fo_Unit;

{$R *.dfm}

procedure Tmainform.N12Click(Sender: TObject);
begin
mainform.Close;
end;

procedure Tmainform.N8Click(Sender: TObject);
begin
kh_Form.ShowModal;
end;

procedure Tmainform.N14Click(Sender: TObject);
begin
gh_Form.ShowModal;
end;

procedure Tmainform.N15Click(Sender: TObject);
begin
gh1_Form.ShowModal;
end;

procedure Tmainform.N16Click(Sender: TObject);
begin
gh2_Form.ShowModal;
end;

procedure Tmainform.N10Click(Sender: TObject);
begin
T_ch_form.ShowModal;
end;

procedure Tmainform.N17Click(Sender: TObject);
begin
Vam_Form.ShowModal;
end;

procedure Tmainform.N9Click(Sender: TObject);
begin
fo_form.ShowModal;
end;

procedure Tmainform.N13Click(Sender: TObject);
begin
B_ch_form.ShowModal;
end;

procedure Tmainform.N18Click(Sender: TObject);
begin
Fish_Form.ShowModal;
end;

procedure Tmainform.N20Click(Sender: TObject);
begin
ch_kh_form.ShowModal;
end;

procedure Tmainform.N19Click(Sender: TObject);
begin
SHARJ_FORM.ShowModal;
end;

procedure Tmainform.N21Click(Sender: TObject);
begin
Sandogh_Form.ShowModal;
end;

end.

moradii
سه شنبه 17 شهریور 1383, 12:40 عصر
هیچ کسی راه حلی برای مشکل ما نداره؟ :cry: :cry: :cry: :cry: