Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с записью теипа Record [D7]


Страницы:   1 2 3

Wadimka ©   (2012-01-26 07:47:00) 

Есть в программе куча записей record большинство из них это в последствии динамические массивы, а теперь проблема не могу понять почему,
создаю новый record в нем всего 6 полей типа Integer и Extended.
Программа компилится, но сразу вылетает по acces (данная запись рекорд только объявлена в type и в коде нигде не используется)
Если заремить это объявление, все работает
Какие есть вообще ограничения на эти структуры?
или как лечить?


Сергей М.   (2012-01-26 10:54:00) [21]


> Wadimka   (26.01.12 10:49) [19]


Search -> Find error ..


RWolf   (2012-01-26 10:53:00) [22]


> Прога вылетает сразу при старте с ошибкой

включить отладчик, найти строку, в которой вылетает.
в чём затруднение-то?


sniknik   (2012-01-26 10:53:00) [23]

> Я же и пишу, если закомментить то что выше, то не вылетает
не выше, а ВСЕ. все коментарить нужно, где есть использование, иначе структура/размер меняется, где-то вылезает за пределы... AV.

скопируй из [15] полностью, и замени свое, если не видишь разницы, там и у "Я же и пишу" (а код/комментарий показываешь другой).


Wadimka   (2012-01-26 10:49:00) [24]

>>>а 17-я строка с ошибкой лежит по адресу 00401F9A

17 строка в том юните?


Wadimka   (2012-01-26 10:48:00) [25]

>>не проще type LKopmmn = integer;
Там будет много записей, я 1 элемент только оставил, все равно глюк

А вот так не вылетает!!!!!!!!!!!
type
LKopmmn=record
    Hjk:integer;
end;

type
HProbaGhj=record
    IDMarket:integer;
    IDNumDim1,
    IDNumDim2:integer;
    //KDLoadNN:array of LKopmmn;
end;

Я же и пишу, если закомментить то что выше, то не вылетает


Сергей М.   (2012-01-26 10:47:00) [26]

а 17-я строка с ошибкой лежит по адресу 00401F9A


MacroDenS   (2012-01-26 10:40:00) [27]

попробуй еще память компа проверить


sniknik   (2012-01-26 09:38:00) [28]

>  этот код только объявлен в type
тогда "комментарить" для проверки нужно так -

> А вот так не вылетает!!!!!!!!!!!
type
{LKopmmn=record
    Hjk:integer;
end;

type
HProbaGhj=record
    IDMarket:integer;
    IDNumDim1,
    IDNumDim2:integer;
    KDLoadNN:array of LKopmmn;
end;}


вот это будет показатель, что не используется, а иначе используется.


Slym   (2012-01-26 09:37:00) [29]

Wadimka   (26.01.12 8:25) [12]
LKopmmn=record
    Hjk:integer;
end;

я фшоке...
не проще type LKopmmn = integer;


Wadimka   (2012-01-26 08:26:00) [30]

Еще раз напомню, этот код только объявлен в type
больше никаким боком к проге не используется


Wadimka   (2012-01-26 08:25:00) [31]

Да там килобайт на 20 писанины.
Вот так вылетает
type
LKopmmn=record
     Hjk:integer;
end;

type
HProbaGhj=record
     IDMarket:integer;
     IDNumDim1,
     IDNumDim2:integer;
     KDLoadNN:array of LKopmmn;
end;

А вот так не вылетает!!!!!!!!!!!
type
LKopmmn=record
     Hjk:integer;
end;

type
HProbaGhj=record
     IDMarket:integer;
     IDNumDim1,
     IDNumDim2:integer;
     //KDLoadNN:array of LKopmmn;
end;


sniknik   (2012-01-26 08:21:00) [32]

> Даже в этом проекте объявление его в другом unitе к ошибке не приводит
т.е. все ок с этим объявлением, т.е. в [2] ты привел возможно единственно правильный кусочек модуля и хочешь чтобы нашли по нему глюк в остальном?

ищи где потерял, а не где светлее.


Wadimka   (2012-01-26 08:20:00) [33]

Почему приводит именно в том файле, где объявлены все типы?


Wadimka   (2012-01-26 08:16:00) [34]

>>>новый проект, добавь в него, и ничего более. вылетает? пиши рейс.

Даже в этом проекте объявление его в другом unitе к ошибке не приводит


Wadimka   (2012-01-26 08:12:00) [35]

Поменял полностью названия типов, эффект тот-же


sniknik   (2012-01-26 08:11:00) [36]

> Есть какие-то ограничения что-ли?
только ламерство при использовании. не там, не так.


MBo   (2012-01-26 08:10:00) [37]

объявление ни при чём.
Write of address 00000002 - где-то пишешь в не свою память.


sniknik   (2012-01-26 08:10:00) [38]

> Еще раз повторю, с этим рекорд ничего еще не делаю, даже в var не объявлен.
новый проект, добавь в него, и ничего более. вылетает? пиши рейс.


Wadimka   (2012-01-26 08:09:00) [39]

Все структуры были оформлены в одном файле variable.pas
сейчас эту структуру перенес в основной файл с формой1
тут запускается.

Есть какие-то ограничения что-ли?
В проекте примерно структур 30


sniknik   (2012-01-26 08:08:00) [40]

возможно имя типа перекрывает где-то используемое такое же, и так
> большинство из них это в последствии динамические массивы
то из-за разности размеров "влазишь" данными в код.

ошибка в 17й строке в общем.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо