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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2009, 19:09   #1
Ronder
Пользователь
 
Регистрация: 14.07.2009
Сообщений: 28
По умолчанию ListView и Access violation

На форму поставлен ListView, Edit и Button. ListView изначально невидим. При клике на Button Visible у ListView становится True, и когда пользователь выбирает элемент, его Caption записывается в Edit.
Когда выбираешь элемент ListView первый раз всё нормально, а на второй раз вылетает ошибка Access violation...

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ListView1.Visible := True;
end;

procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
  ListView1.Visible := False;
  Form1.Edit1.Text := ListView1.Selected.Caption;
end;
В чём может быть причина?
Ronder вне форума Ответить с цитированием
Старый 18.08.2009, 19:59   #2
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  LV1.Visible := True;
end;

procedure TForm1.LV1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
  LV1.Visible := False;
  if LV1.Selected<>nil then
   Edit1.Text := LV1.Selected.Caption;
end;
Alter вне форума Ответить с цитированием
Старый 19.08.2009, 12:39   #3
Ronder
Пользователь
 
Регистрация: 14.07.2009
Сообщений: 28
По умолчанию

Большое спасибо!
Ronder вне форума Ответить с цитированием
Старый 21.08.2009, 17:47   #4
Ronder
Пользователь
 
Регистрация: 14.07.2009
Сообщений: 28
По умолчанию

Опять возникла проблема с элементом ListView.
В цикле пытаюсь поменять иконки элементов:

Код:
for i := 0 to Form1.sUserList.Items.Count do
    if Form1.sUserList.Items[i].Caption = nick then
         Form1.sUserList.Items[i].ImageIndex = 2;
Выскакивает всё тот же Access violation :-(
Ronder вне форума Ответить с цитированием
Старый 21.08.2009, 17:50   #5
Ronder
Пользователь
 
Регистрация: 14.07.2009
Сообщений: 28
По умолчанию

С проблемой разобрался:

Код:
    for i := 0 to Form1.sUserList.Items.Count do
      if Form1.sUserList.Items[i].Caption = nick then
      begin
        Form1.sUserList.Items[i].ImageIndex := 2;
        break;
      end;
Ronder вне форума Ответить с цитированием
Старый 21.08.2009, 18:35   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

не думаю...ошибку так и не нашли...
номер последнего элемента это
Код:
Form1.sUserList.Items.Count-1
а не то что у вас.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.08.2009, 11:19   #7
Ronder
Пользователь
 
Регистрация: 14.07.2009
Сообщений: 28
По умолчанию

Точно, не заметил. Спасибо.
Ronder вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
access violation at address UnChanter Общие вопросы Delphi 22 07.02.2011 11:00
Access Violation при Form1.ListView.Clear Hottabych Общие вопросы Delphi 7 11.08.2009 17:13
Access Violation SunKnight Общие вопросы Delphi 2 05.06.2008 16:46
Access Violation Carbon Общие вопросы Delphi 12 18.09.2007 19:55