Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы
Старый 13.10.2007, 18:00   #1
Fen1x
 
Регистрация: 30.09.2007
Сообщений: 8
По умолчанию Ошибка: "Access violation at address 00454F01 in module 'Project1.exe'. Read of address 00000000.

Вот код прогаммы:
Код:
.................................................
.................................................
z:TStrings;
................................................
.................................................
procedure TForm1.Button9Click(Sender: TObject);
var
i:integer;
begin
OpenDialog1.Options:=[ofHideReadOnly,ofAllowMultiSelect,ofEnableSizing];
if OpenDialog1.Execute then
  begin
  for i:=0 to OpenDialog1.Files.Count-1 do
  begin
    ListBox1.Items.Add('1. '+ExtractFileName(OpenDialog1.Files[i]));
    z.Add(OpenDialog1.Files[i]);// тут ошибка
  end;
  end;
end;
Ошибка говорит: "Access violation at address 00454F01 in module 'Project1.exe'. Read of address 00000000." Помогите пожалуйста, я уже измучился

PS
Не ругайтесь если спросил, что то глупое. Delphi изучаю всего месяц.
Fen1x вне форума
Старый 13.10.2007, 18:22   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Fen1x Посмотреть сообщение
Не ругайтесь если спросил, что то глупое. Delphi изучаю всего месяц.
У нас не ругаются, а помогают и объясняют.
Код:
var
  Form1: TForm1;
  z: TStrings;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
OpenDialog1.Options:=[ofHideReadOnly,ofAllowMultiSelect,ofEnableSizing];
if OpenDialog1.Execute then
  begin
  for i:=0 to OpenDialog1.Files.Count-1 do
  begin
    ListBox1.Items.Add('1. '+ExtractFileName(OpenDialog1.Files[i]));
    z.Add(OpenDialog1.Files[i]);// òóò îøèáêà
  end;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
z:=TStringList.Create;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
z.Free;
end;

end.
Объявить Z - мало, нужно еще и создать. А чтобы не было "утечки" памяти, еще и уничтожить...
mihali4 вне форума
Старый 13.10.2007, 18:25   #3
Fen1x
 
Регистрация: 30.09.2007
Сообщений: 8
По умолчанию

Спасибо большое! Очень благодарен!
Fen1x вне форума
Старый 13.10.2007, 18:30   #4
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Внес небольшие изменения:
Код:
    ListBox1.Items.Add(inttostr(i+1)+'. '+ExtractFileName(OpenDialog1.Files[i]));
    z:=(OpenDialog1.Files);
Z - список. Ты добавляешь из OpenDialoga файлы списком, а не по одному. т.е. никаких [i] в добавлении не надо.
А создавать/уничтожать здесь по идее не надо.
Alex21 вне форума
Старый 13.10.2007, 18:39   #5
Fen1x
 
Регистрация: 30.09.2007
Сообщений: 8
По умолчанию

На счет intostr(i+1) я сам заметил уже, а вот за Z спасибо, а то я хотел уже писать о ошибке! Еще раз спасибо всем!
Fen1x вне форума
Старый 13.10.2007, 18:54   #6
Fen1x
 
Регистрация: 30.09.2007
Сообщений: 8
По умолчанию

Цитата:
z:=(OpenDialog1.Files);
Хе-хе не правильно чуть чуть... В этом случае каждый раз при открытие файлов, в Z пути к файлам будут записываться по новой. А мне надо, что бы добавлялись... Но в случае
Цитата:
z.Add(OpenDialog1.Files[i]);
вылазиет ошибка "Obstact error". Что делать???
Fen1x вне форума
Старый 13.10.2007, 19:06   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
А создавать/уничтожать здесь по идее не надо.
Нужно, сэ-э-р! Проведите эксперимент...
Цитата:
вылазиет ошибка "Obstact error". Что делать???
Изменил на
ListBox1.Items.Add(inttostr(i+1)+'. '+ExtractFileName(OpenDialog1.Files[i]));
Проверил у себя. Никакой ошибки по моему варианту.
mihali4 вне форума
Старый 13.10.2007, 19:09   #8
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 15,751
По умолчанию

По теме -
http://delphibasics.ru/TOpenDialog.php

http://delphibasics.ru/TStringList.php
Alar вне форума
Старый 13.10.2007, 19:13   #9
Fen1x
 
Регистрация: 30.09.2007
Сообщений: 8
По умолчанию

Извиняюсь, я все исправил! Еще раз всем ответившим, огромный респект!
Fen1x вне форума
Закрытая тема

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Память не может быть "read" Alewteena Безопасность, Шифрование 3 27.08.2008 04:16
Address ошибки nimf Общие вопросы Delphi 1 30.04.2008 17:17
Access violation at address.. RegentM Общие вопросы Delphi 4 01.11.2007 03:46
Access Violation Carbon Общие вопросы Delphi 12 18.09.2007 18:55
Возникает исключение "Access violation at address ... Наташка Общие вопросы Delphi 1 18.05.2007 11:16


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS