Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.07.2009, 20:16
bragol bragol вне форума
Прохожий
 
Регистрация: 25.03.2008
Сообщения: 14
Репутация: 10
По умолчанию Ошибка access violation at address

Цитата:
access violation at address 00471b35 in module 'project1.exe'. read of adress 000002f8.

вот код. В переменную типа стринглист из текстового файла загружается зашифрованная строка, которая далее записывается в расшифрованном виде в эдит, но вот на предпоследнюю строчку выползает ошибка, не подскажите как ее устранить или может быть это из-за несовместимости типов строки и текста?
Цитата:
STR:= TStringList.Create;

dir:=GetCurrentDir;
adr:=dir+'\system.txt';
str.LoadFromFile(adr);

w:=str.Strings[0];

form2.Edit1.Text:=Decrypt(w,StartKey,MultKey,AddKe y);
str.Free;

Последний раз редактировалось bragol, 21.07.2009 в 21:53.
Ответить с цитированием
  #2  
Старый 21.07.2009, 20:19
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,057
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Код:
w := str[0];

И проверь в отлдадчике, что у тебя созданы все объекты, к которым ты обращаешься.
Ответить с цитированием
  #3  
Старый 21.07.2009, 20:22
bragol bragol вне форума
Прохожий
 
Регистрация: 25.03.2008
Сообщения: 14
Репутация: 10
По умолчанию

и твой и мой вариант рабочие, это проверенно
все создано w:string
да и не на эту строку ругается
Ответить с цитированием
  #4  
Старый 21.07.2009, 21:51
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Ошибка в функции Decrypt, ищи там.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #5  
Старый 21.07.2009, 21:52
bragol bragol вне форума
Прохожий
 
Регистрация: 25.03.2008
Сообщения: 14
Репутация: 10
По умолчанию

устранил ошибку, но не понял ее причину, все было из-за того, что представленный код был на теле формы 1, а эдиты располагались на второй форме, я просто напросто перенес код на форму 2
Ответить с цитированием
  #6  
Старый 21.07.2009, 23:52
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,057
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ага, и код выполнялся в обработчике OnCreate формы 1. В этот момент форма 2 еще не создана, вот ты и получал сообщегие об ошибке.
Ответить с цитированием
  #7  
Старый 22.07.2009, 15:01
bragol bragol вне форума
Прохожий
 
Регистрация: 25.03.2008
Сообщения: 14
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Ага, и код выполнялся в обработчике OnCreate формы 1. В этот момент форма 2 еще не создана, вот ты и получал сообщегие об ошибке.
почему не создана, она создана, просто свойство visible:=false по дефолту, если его изменить на противоположное, то появляются обе формы одновременно, насколько я знаю и насколько видно из кода проекта...
Ответить с цитированием
  #8  
Старый 22.07.2009, 15:12
PiboDIE PiboDIE вне форума
Прохожий
 
Регистрация: 17.06.2009
Сообщения: 28
Репутация: 10
По умолчанию

Цитата:
Сообщение от bragol
почему не создана, она создана, просто свойство visible:=false по дефолту, если его изменить на противоположное, то появляются обе формы одновременно, насколько я знаю и насколько видно из кода проекта...
Это смотря на каком этапе менять. В действительности, по умолчанию, формы создаются последовательно, и, если в обработчике OnCreate первой формы попытаться обратиться ко второй форме (или к какому-либо её компноненту) - появится access violation. Последовательность создания форм можно изменять и если сначала создать 2ю форму, а потом первую, то подобной ошибки не будет.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:39.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter