|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Ошибка памяти EAccessViolation при FormCreate в Delphi 10
Здравствуйте, у меня программа на Delphi 10, которая работает с базой данной на sql. При работе программа вылетает и выдает такую ошибку:
Project AMG.exe raised exception class EAccessViolation with message ‘Access violation at address 009AC7D4 in module ‘AMG.exe’. Read of address 000000D0’ Я не могу понять почему два идентичных вызова одного и того же метода приводят к AccessViolation в одном случае (blbRazdel3009Click) и нормальной работе в другом (blbRazdel1009Click). Код:
procedure TMainForm.blbRazdel1009Click(Sender : TObject); begin FreeActiveItem; if Razdel1009Form=nil then Razdel1009Form:=TRazdel1009Form.Cre ate(Self); Razdel1009Form.ManualDock(DockPanel ,nil,alClient); ActiveForm:=Razdel1009Form; ActiveBarButton:=blbRazdel1009; ActiveBarButton.Enabled:=false; FormResize(Sender); Razdel1009Form.Show; Razdel1009Form.GROTMGrid.SetFocus; Razdel1009Form.GROTMTableView.DataC ontroller.SelectRows(0,0); end; procedure TMainForm.blbRazdel3009Click(Sender : TObject); begin FreeActiveItem; if Razdel11_009Form=nil then begin Razdel11_009Form:=TForm1.Create(Sel f); Razdel11_009Form.FormCreate(Sender) ; end; Razdel11_009Form.ManualDock(DockPan el,nil,alClient); ActiveForm:=Razdel11_009Form; ActiveBarButton:=blbRazdel3009; ActiveBarButton.Enabled:=false; FormResize(Sender); Razdel11_009Form.Show; Razdel11_009Form.GROTMGrid.SetFocus ; Razdel11_009Form.GROTMTableView.Dat aController.SelectRows(0,0); end; Функция FormCreate: Код:
procedure TForm1.FormCreate(Sender: TObject); var I: integer; Info: PRazdel1Info; begin ABDDataModule.GRQuery.Active := false; ABDDataModule.GRQuery.Active := true; L := TList.Create; while not ABDDataModule.GRQuery.Eof do begin I := GRTableView.DataController.AppendRe cord; GRTableView.DataController.Values[I, 0] := false; GRTableView.DataController.Values[I, 1] := ABDDataModule.GRQuery.FieldByName(' name').AsString; GRTableView.DataController.Values[I, 2] := ABDDataModule.GRQuery.FieldByName(' numer').AsInteger; Люди добрые, помогите кто чем может Последний раз редактировалось M.A.D.M.A.N., 16.08.2016 в 08:47. |