Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2007, 23:52   #1
num8er
 
Регистрация: 09.10.2007
Сообщений: 4
Вопрос Ошибка EAccessViolation

всем привет!
у меня проблема с компиляцией проекта, выходит ошибка:

Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 004AB07C in module 'Project1.exe'. Read of address 0000004C'. Process stopped...


procedure TfrmDBMain.FormResize(Sender: TObject);
begin
with grdDB do
begin
Top:=5;
Left:=5;
Height:=frmDBMain.Height-60; // <-- точко обрыва
Width:=frmDBMain.Width-15; // <-- точко обрыва
end;
end;


та же самая ошибка выходит при обрашении к элементам других форм. например:

procedure TfrmDBMain.mnuOpenClick(Sender: TObject);
begin
dlgOpen.Execute;
conADO.ConnectionString:='Provider= Microsoft.Jet.OLEDB.4.0;Data Source='+dlgOpen.FileName;
conADO.Connected:=True;
conADO.GetTableNames(frmTabsSl.lbTa bs.Items); // <-- точко обрыва
frmTabsSl.ShowModal;
end;


помогите решить проблему
num8er вне форума Ответить с цитированием
Старый 09.10.2007, 23:58   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А что это за зверь - "grdDB"?
И приложите код файла самого проекта.
mihali4 вне форума Ответить с цитированием
Старый 10.10.2007, 00:03   #3
num8er
 
Регистрация: 09.10.2007
Сообщений: 4
Вопрос

Цитата:
Сообщение от mihali4 Посмотреть сообщение
А что это за зверь - "grdDB"?
И приложите код файла самого проекта.
grdDB - это просто TDBGrid

а код самого проекта выложить не могу, потому что не закончен из-за этой ощибки.
num8er вне форума Ответить с цитированием
Старый 10.10.2007, 00:19   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
код самого проекта выложить не могу, потому что не закончен из-за этой ощибки.
Код проекта - это в меню Дельфи "Project -> View source".
Малюсенький такой файлик...
На всякий случай проверил:
Код:
procedure TForm1.FormResize(Sender: TObject);
begin
DBGrid1.Top:=5;
DBGrid1.Left:=5;
DBGrid1.Height:=Height-60;
DBGrid1.Width:=Width-60;
end;
никакой ошибки, тем более на стадии компиляции...

Давайте весь текст модуля.

Последний раз редактировалось mihali4; 10.10.2007 в 00:24.
mihali4 вне форума Ответить с цитированием
Старый 10.10.2007, 00:33   #5
num8er
 
Регистрация: 09.10.2007
Сообщений: 4
Сообщение листинг проекта

Листинг проекта

Цитата:
{$A8,B-,C+,D+,E-,F-,G+,H+,I+,J-,K-,L+,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1}
{$MINSTACKSIZE $00004000}
{$MAXSTACKSIZE $00100000}
{$IMAGEBASE $00400000}
{$APPTYPE GUI}
{$WARN SYMBOL_DEPRECATED ON}
{$WARN SYMBOL_LIBRARY ON}
{$WARN SYMBOL_PLATFORM ON}
{$WARN UNIT_LIBRARY ON}
{$WARN UNIT_PLATFORM ON}
{$WARN UNIT_DEPRECATED ON}
{$WARN HRESULT_COMPAT ON}
{$WARN HIDING_MEMBER ON}
{$WARN HIDDEN_VIRTUAL ON}
{$WARN GARBAGE ON}
{$WARN BOUNDS_ERROR ON}
{$WARN ZERO_NIL_COMPAT ON}
{$WARN STRING_CONST_TRUNCED ON}
{$WARN FOR_LOOP_VAR_VARPAR ON}
{$WARN TYPED_CONST_VARPAR ON}
{$WARN ASG_TO_TYPED_CONST ON}
{$WARN CASE_LABEL_RANGE ON}
{$WARN FOR_VARIABLE ON}
{$WARN CONSTRUCTING_ABSTRACT ON}
{$WARN COMPARISON_FALSE ON}
{$WARN COMPARISON_TRUE ON}
{$WARN COMPARING_SIGNED_UNSIGNED ON}
{$WARN COMBINING_SIGNED_UNSIGNED ON}
{$WARN UNSUPPORTED_CONSTRUCT ON}
{$WARN FILE_OPEN ON}
{$WARN FILE_OPEN_UNITSRC ON}
{$WARN BAD_GLOBAL_SYMBOL ON}
{$WARN DUPLICATE_CTOR_DTOR ON}
{$WARN INVALID_DIRECTIVE ON}
{$WARN PACKAGE_NO_LINK ON}
{$WARN PACKAGED_THREADVAR ON}
{$WARN IMPLICIT_IMPORT ON}
{$WARN HPPEMIT_IGNORED ON}
{$WARN NO_RETVAL ON}
{$WARN USE_BEFORE_DEF ON}
{$WARN FOR_LOOP_VAR_UNDEF ON}
{$WARN UNIT_NAME_MISMATCH ON}
{$WARN NO_CFG_FILE_FOUND ON}
{$WARN MESSAGE_DIRECTIVE ON}
{$WARN IMPLICIT_VARIANTS ON}
{$WARN UNICODE_TO_LOCALE ON}
{$WARN LOCALE_TO_UNICODE ON}
{$WARN IMAGEBASE_MULTIPLE ON}
{$WARN SUSPICIOUS_TYPECAST ON}
{$WARN PRIVATE_PROPACCESSOR ON}
{$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CODE OFF}
{$WARN UNSAFE_CAST OFF}
unit unDBWork;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, Grids, DBGrids, DB, ADODB, ExtCtrls, StdCtrls;

type
TfrmDBMain = class(TForm)
srcADO: TDataSource;
conADO: TADOConnection;
dlgOpen: TOpenDialog;
Timer1: TTimer;
mnu: TMainMenu;
N1: TMenuItem;
mnuOpen: TMenuItem;
mnuSave: TMenuItem;
N2: TMenuItem;
mnuExit: TMenuItem;
tabADO: TADOTable;
pmnu: TPopupMenu;
pmnuAdd: TMenuItem;
pmnuChan: TMenuItem;
pmnuRem: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
queADO: TADOQuery;
grdDB: TDBGrid;
procedure Timer1Timer(Sender: TObject);
procedure AlphaClose(var WMC: TWMClose); message WM_Close;
procedure FormResize(Sender: TObject);
procedure mnuOpenClick(Sender: TObject);
procedure pmnuPopup(Sender: TObject);
procedure pmnuAddClick(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
frmDBMain: TfrmDBMain;
implementation

uses unTabsSl, unAddField;

{$R *.dfm}

procedure TfrmDBMain.AlphaClose(var WMC: TWMClose);
begin
frmDBMain.AlphaBlend:=True;
Timer1.Enabled:=True;
end;

procedure TfrmDBMain.Timer1Timer(Sender: TObject);
begin

With frmDBMain do
begin
AlphaBlendValue:=AlphaBlendValue-15;
if AlphaBlendValue<30 then
begin
conADO.Connected:=False;
frmTabsSl.Destroy;
Close;
end;
end;

end;


procedure TfrmDBMain.FormResize(Sender: TObject);
begin
with grdDB do
begin
Top:=5;
Left:=5;
Height:=frmDBMain.Height-60;
Width:=frmDBMain.Width-15;
end;
end;

procedure TfrmDBMain.mnuOpenClick(Sender: TObject);
begin
dlgOpen.Execute;
conADO.ConnectionString:='Provider= Microsoft.Jet.OLEDB.4.0;Data Source='+dlgOpen.FileName;
conADO.Connected:=True;
conADO.GetTableNames(frmTabsSl.lbTa bs.Items);
frmTabsSl.ShowModal;
end;

procedure TfrmDBMain.pmnuAddClick(Sender: TObject);
begin
frmAddField.ShowModal;
end;


end.
num8er вне форума Ответить с цитированием
Старый 10.10.2007, 00:58   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Да нет, это - листинг модуля unDBWork.
Кстати, уберите все директивы, которые над именем модуля. Кто вас научил включать все предупреждения - и по поводу, и без повода?
Сколько лет этим делом занимаюсь - ни разу не видел, чтобы в модуле (!) были напиханы директивы компилятору...
Вот, а файл проекта - это файл, первая строка которого начинается со слова PROGRAM (вы же не DLL-ку пишете?).
Откройте текстовым редактором ваш файл .DPR и увидите его, если не получается через меню Дельфи (что само по себе странно).
mihali4 вне форума Ответить с цитированием
Старый 10.10.2007, 08:00   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Автору:

1) Это что такое? -
frmTabsSl.Destroy;
Close;
че эт ты вызываешь закрытие в таймере а в закрытии активируеш таймер?

2) почему обязательно procedure TfrmDBMain.AlphaClose(var WMC: TWMClose);? Ведь есть событие OnClose

3) Самое главное - на какой строке вылетает ошибка?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чем ошибка!!! juden Общие вопросы Delphi 12 10.03.2008 08:53
ОШИБКА YLIANOVA83 Microsoft Office Word 5 07.03.2008 15:02
Что за ошибка??? Rembo Свободное общение 2 08.01.2008 14:34
Ошибка: "EAccessViolation with message..." Ravnica Помощь студентам 4 04.11.2007 20:46
в чем ошибка? Lonix Общие вопросы Delphi 2 24.03.2007 09:41