![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Однако, зравствуйте.
Имеются 2 формы и 1 модуль, в котором хранятся все процедуры и функции с общими переменными. Если на формах задействовать как-либо общие переменные, то, при их подключении, в самом приложении вылетит ошибка Access violation. Как правильно обращаться к ним? Код модуля Код:
unit Core;
----------------------------------
type
Options = record
X:string;
Y:string[32];
end;
----------------------------------
type
TCore = Class
private
public
Conf: Options;
----------------------------------Код формы: Код:
unit unti2; interface uses ......., Core; ---------------------------------- var Core : TCore; Form2: TForm2; implementation procedure TForm2.BitBtn1Click(Sender: TObject); var Ram:Options; begin Ram:=Core.Conf; end; ---------------------------------- Последний раз редактировалось IRorshachI, 17.11.2013 в 10:20. |
|
#2
|
||||
|
||||
|
Показывай код.
|
|
#3
|
|||
|
|||
|
Коды выложил, проблема в том, что компилятор этот код пропускает, ошибка вылезает уже после запуска. Все переменные запоняются при запуске первой формы.
|
|
#4
|
||||
|
||||
|
Core не создан
|
|
#5
|
|||
|
|||
|
Core создается при запуске 1-й формы и все переменные читаются из текстового файла, на первой форме подобных ошибок нет и все переменные использвуются без проблем, но, видимо, при переходе на 2-ю форму с ними что-то происходит. Вопрос, как сохранять переменные при переходе с формы на форму не задействую текстовый файл?
|
|
#6
|
||||
|
||||
|
Цитата:
Вообще лучше не называть модули такими именами которыми можно потом спутать с другими идентификаторами (т.е. переменными, типами, функциями и т.п.). Мне нравится в конце имени модуля добавлять слово Unit - получится CoreUnit. Некоторые добавляют в начале имени модуля букву U - получается UCore. |