![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Access Violation
Andrewtitoff © (2009-02-11 10:11:00)Здравствуйте!, подскажите пожалуйста что тут не так?, выскакивает ошибка Access Violation at adress 00404D68 in module 'otchet.exe'. Read of adrdress 403DFFF8
ShowMessage(
' Бригада 1: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),1]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),1]]])+#13#10+
' Бригада 2: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),2]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),2]]])+#13#10+
' Бригада 3: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),3]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),3]]])+#13#10+
' Бригада 4: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),4]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),4]]])+#13#10+
' Бригада 5: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),5]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),5]]])+#13#10+
' Бригада 6: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),6]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),6]]])+#13#10+
' Бригада 7: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),7]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),7]]])+#13#10+
' Бригада 8: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),8]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),8]]])+#13#10+
' Бригада 9: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),9]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),9]]])+#13#10+
'Бригада 10: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),10]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),10]]])+#13#10+
'Бригада 11: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),11]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),11]]])+#13#10+
'Бригада 12: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),12]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),12]]])+#13#10+
'Бригада 13: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),13]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),13]]]));
Плохиш (2009-02-11 11:00:00) [41]
> Ega23 © (11.02.09 10:56) [24]
>
>
> > если нужно - могу полный код процедуры показать
>
>
> Надо с этого начинать.
Вот тут ты не прав, о великий удалённый отладчик чужого бредокода, начинать надо было с F7/F8 ;-)
Andrewtitoff (2009-02-11 10:59:00) [42]
procedure TForm1.Button3Click(Sender: TObject);
begin
if combobox9.Text='' then ShowMessage('ОШИБКА: Введите все данные...') else
OtchetB(2);
end;
Andrewtitoff (2009-02-11 10:58:00) [43]2 Palladin
procedure TForm1.OtchetB(s : byte);
var
nLikeADate:Integer;
d1 : word;
m1 : word;
y1 : word;
d2 : word;
m2 : word;
y2 : word;
c : integer;
count : integer;
sms : MYString;
strc : Integer;
i,n : integer;
k : integer;
o : real;
uh : string;
um : string;
brig : array[101..813] of integer;
brigt : array[101..813] of real;
uch : array[1..8,1..13]of integer;
const
uch1 : array[1..13]of integer =(101,102,103,104,105,106,107,0,0,0,0,0,0);
uch2 : array[1..13]of integer =(201,202,203,204,205,206,207,208,209,210,211,0,0);
uch6 : array[1..13]of integer =(601,602,603,604,605,606,607,608,609,0,0,0,0);
uch7 : array[1..13]of integer =(701,702,0,704,705,0,0,0,0,0,0,0,0);
uch8 : array[1..13]of integer =(801,802,803,804,805,806,807,808,809,810,811,812,813);
begin
for n := 1 to 13 do
Begin
uch[1,n]:=uch1[n];
uch[2,n]:=uch2[n];
uch[6,n]:=uch6[n];
uch[7,n]:=uch7[n];
uch[8,n]:=uch8[n];
End;
for n := 101 to 813 do
brig[n]:=0;
for n := 101 to 813 do
brigt[n]:=0;
d1 := 20;
if s=1 then m1:=12 else m1 := s-1;
if s=1 then y1:=strtoint(Form1.Combobox9.Text)-1 else y1 := strtoint(Form1.Combobox9.Text);
d2 := 20;
m2 := s;
y2 := strtoint(Form1.Combobox9.Text);
For nLikeADate:=Trunc(EncodeDate(y1,m1,d1)) to Trunc(EncodeDate(y2,m2,d2)) Do
Begin
if fileexists(MD+'\Z\'+DateToStr(nLikeADate)+'.lft') then
Begin
with TFileStream.create(MD+'\Z\'+DateToStr(nLikeADate)+'.lft', fmShareDenyNone) do
try
c:=trunc(Size/671);
finally
Free;
end;
with TFileStream.create(MD+'\Z\'+DateToStr(nLikeADate)+'.lft',fmOpenRead) do
try
read(sms,671);
for count := 1 to c-1 do
begin
read(sms,671);
if {(sms.PLACE=Form1.ComboBox8.Text)and}(sms.Remont<>'Простой') then
begin
if (isNumber(sms.BRIGADE))and(sms.BRIGADE<>'') then
begin
k:=strtoint(sms.BRIGADE);
inc(brig[k]);
end
else k:=0;
if (copy(sms.Remont,3,1)='.')and(copy(sms.Remont,6,1)='.') then
brigt[strtoint(sms.BRIGADE)]:=brigt[strtoint(sms.BRIGADE)]+0.5 else
Begin
uh:=copy(sms.Prostoy,1,2);
um:=copy(sms.Prostoy,4,2);
if uh='' then uh:='0';
if um='' then um:='0';
if isNumber(um)and isNumber(uh)then
Begin
o:=strtoint(um)/60;
o:=o+strtoint(uh);
brigt[k]:=brigt[k]+o;
End;
End;
end;
end;
finally
Free;
end;
end;
end;
ShowMessage(
' Бригада 1: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),1]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),1]]])+#13#10+
' Бригада 2: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),2]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),2]]])+#13#10+
' Бригада 3: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),3]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),3]]])+#13#10+
' Бригада 4: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),4]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),4]]])+#13#10+
' Бригада 5: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),5]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),5]]])+#13#10+
' Бригада 6: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),6]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),6]]])+#13#10+
' Бригада 7: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),7]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),7]]])+#13#10+
' Бригада 8: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),8]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),8]]])+#13#10+
' Бригада 9: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),9]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),9]]])+#13#10+
'Бригада 10: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),10]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),10]]])+#13#10+
'Бригада 11: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),11]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),11]]])+#13#10+
'Бригада 12: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),12]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),12]]])+#13#10+
'Бригада 13: '+Format('%.4d',[brig[uch[strtoint(Form1.ComboBox8.Text),13]]])+'/'+Format('%f', [brigt[uch[strtoint(Form1.ComboBox8.Text),13]]]));
end;
Плохиш (2009-02-11 10:57:00) [44]
> Andrewtitoff © (11.02.09 10:54) [21]
Маленький глупый партизан нафига ты сюда припёрся. Здесь не гестапо, партизанов не пытают, а мочат жестоко...
Ega23 (2009-02-11 10:56:00) [45]
> если нужно - могу полный код процедуры показать
Надо с этого начинать.
aik (2009-02-11 10:55:00) [46]
> при чем за один месяц почему то не выдает ошибку(ноябрь 2008)
Наверное это счастливый месяц )))
Ega23 (2009-02-11 10:55:00) [47]
> http://www.delphisources.ru/pages/faq/base/access_violation.html
По данной ссылке:
TMyClass = class (TObject)
public
function Foo : string;
end;
TForm2 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
{ TMyClass }
function TMyClass.Foo: string;
begin
Result := 'TMyClass.Foo';
end;
procedure TForm2.Button1Click(Sender: TObject);
var
obj : TMyClass;
begin
ShowMessage(obj.Foo);
end;
:)
Andrewtitoff (2009-02-11 10:54:00) [48]2 Ega23
bmp:=TBitmap.Create;
2 Palladin
Да она единственная выдает, она находится в процедуре, в процедуре задается один параметр(месяц), явно указанный (кнопка на каждый месяц)
при чем за один месяц почему то не выдает ошибку(ноябрь 2008), остальные месяцы - одинакова - AV, если нужно - могу полный код процедуры показать
Palladin (2009-02-11 10:53:00) [49]представь, да, нужно, и не только мне
Andrewtitoff (2009-02-11 10:53:00) [50]2 Ega23
bmp:=TBitmap.Create;
2 Palladin
Да она единственная выдает, она находится в процедуре, в процедуре задается один параметр(месяц), явно указанный (кнопка на каждый месяц)
при чем за один месяц почему то не выдает ошибку(ноябрь 2008), остальные месяцы - одинакова - AV, если нужно - могу полный код процедуры показать
aik (2009-02-11 10:51:00) [51]
> AIK © (11.02.09 10:45) [15]
> > Ega23 © (11.02.09 10:41) [13]
Упс... извеняюсь адресовано на пост:
> Andrewtitoff © (11.02.09 10:40) [12]
> 2 Ega23Ну наверное потому что такого файла не существует.
> ...А при чем тут Form1?, у меня же действительно существует.
> ., ето единственная форма которая есть в проекте...
Плохиш (2009-02-11 10:51:00) [52]
> AIK © (11.02.09 10:45) [15]
Ты уверен, что Ega23 твоя ссылка нужна? Может всё-таки переадресуешь её аФФтару?
Плохиш (2009-02-11 10:49:00) [53]
> Andrewtitoff © (11.02.09 10:11)
>
> Здравствуйте!, подскажите пожалуйста что тут не так?, выскакивает
> ошибка
Вообще-то здесь конференция "Начинающим", а не служба удалённой отладки бредонедокода.
AIK (2009-02-11 10:45:00) [54]
> Ega23 © (11.02.09 10:41) [13]
http://www.delphisources.ru/pages/faq/base/access_violation.html
Palladin (2009-02-11 10:42:00) [55]у тебя одна одна единственная вот такая комманда выполняется, она единственная на форме, и она и только она выдает ошибку?
Ega23 (2009-02-11 10:41:00) [56]
> Ну наверное потому что такого файла не существует....
Всё понятно. Немедленно бери книжку в руки и читай про объекты, конструкторы, деструкторы и время жизни.
Andrewtitoff (2009-02-11 10:40:00) [57]2 Ega23
Ну наверное потому что такого файла не существует....
А при чем тут Form1?, у меня же действительно существует.., ето единственная форма которая есть в проекте...
Sergey13 (2009-02-11 10:37:00) [58]> [5] Германн © (11.02.09 10:19)
> Количество бригад надо либо уменьшить, либо увеличить!
У автора может отдельные программы на разное количество бригад. 8-)
Ega23 (2009-02-11 10:36:00) [59]
> form1 - существует
>
> var
> Form1: TForm1;
LOL!
на тебе код:
procedure TForm1.Button1OnClick(Sender : TObject);
var
bmp : TBitmap;
begin
bmp.LoadFromFile('D:\test.bmp');
Image1.Picture.Assign(bmp);
end;
Как ты думаешь, почему на первой же строчке у тебя AV вывалится?
Германн (2009-02-11 10:35:00) [60]
> при чем так все работает:
Всё страньше и страньше! (с)