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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2008, 23:51   #1
Detka
Чайник :D
Пользователь
 
Регистрация: 22.12.2006
Сообщений: 65
Вопрос Выдать сообщение об ошибке

Я тока вчера познакомилась с ListBox'ом, так что не обессудьте ежели вопрос глупый.
Вот в чем суть. В ListBox отображается список тем. Вот так:
ListBox1.Items.LoadFromFile(Extract FilePath(Application.ExeName )+'\Base.txt');
По клику на нужной теме в Мемо1 выгружается текст. Вот так:
memo1.Lines.LoadFromFile('operators \'+ListBox1.Items[ListBox1.itemindex]+'.txt') ;
Вопрос: если в списке из Листбокса есть тема, а самого файла с таким именем нет, надо выдать Showmessage ('Выбранный раздел не существует').

Очень надо и очень срочно. ХЕЛП МИ!!!
Мы все учились по-немногу
Чему-нибудь и как-нибудь...

Пушкин А.С.
Detka вне форума Ответить с цитированием
Старый 07.07.2008, 23:55   #2
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

при загрузке в мемо нужно написать:
Код:
if (fileexists('operators\'+ListBox1.Ite ms[ListBox1.itemindex]+'.txt')) then
begin
memo1.Lines.LoadFromFile('operators\'+ListBox1.Items[ListBox1.itemindex]+'.txt');
end else
begin
Showmessage ('Выбранный раздел не существует');
end;
Роман Радер вне форума Ответить с цитированием
Старый 08.07.2008, 00:07   #3
Detka
Чайник :D
Пользователь
 
Регистрация: 22.12.2006
Сообщений: 65
По умолчанию

Спасибки, человек! Большое, просто огромное сенкью!!!!

З.Ы. А не просветишь, что такое fileexists? Так для общего развития.
Мы все учились по-немногу
Чему-нибудь и как-нибудь...

Пушкин А.С.
Detka вне форума Ответить с цитированием
Старый 08.07.2008, 00:16   #4
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

А Ctrl + клик мышью никак в редакторе ? и вообще можно и так, а можно и блоком исключений для обработки try except end;... Информации в сети куча по данным этим
BOBAH13 вне форума Ответить с цитированием
Старый 08.07.2008, 00:18   #5
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
Сообщение от Detka Посмотреть сообщение
Спасибки, человек! Большое, просто огромное сенкью!!!!

З.Ы. А не просветишь, что такое fileexists? Так для общего развития.

FileExists - Это проверка на наличие указанного файла.
Всегда рад помочь!

Последний раз редактировалось Terran; 08.07.2008 в 00:21.
Terran вне форума Ответить с цитированием
Старый 08.07.2008, 00:25   #6
Detka
Чайник :D
Пользователь
 
Регистрация: 22.12.2006
Сообщений: 65
По умолчанию

ага, еще б понять что в ответ выдает делфи
Наверное главная моя проблема с Делфи - незнание английского. Стыдно, но что поделать...

А может кто-нить из вас знает как в качестве hint'а в Листбоксе выводить полное имя строки. Ну как в Винде: когда полностью название не видно, оно всплывает как подсказка.
Мы все учились по-немногу
Чему-нибудь и как-нибудь...

Пушкин А.С.

Последний раз редактировалось Stilet; 08.07.2008 в 08:03.
Detka вне форума Ответить с цитированием
Старый 08.07.2008, 01:01   #7
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Ставим свойство ShowHint в true и пишем
Код:
procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  n: integer;
begin
  n := y div listbox1.ItemHeight ;
  if n<=listbox1.Items.Count then
  listbox1.Hint:= listbox1.Items.Strings[n];
end;
eoln вне форума Ответить с цитированием
Старый 08.07.2008, 01:34   #8
Detka
Чайник :D
Пользователь
 
Регистрация: 22.12.2006
Сообщений: 65
По умолчанию

Делает хинт как надо, но если переводить курсор с одной строки Листбокса сразу на другую, он мне выдает "List index out of bounds (18)"
Что это значит?

Даже не так. Когда на пустое место в Листбоксе навожу выдает сообщение. Пыталась
if n<=listbox1.Items.Count then
listbox1.Hint:= listbox1.Items.Strings[n]
else listbox1.ShowHint:= false;
не помогло.
Мы все учились по-немногу
Чему-нибудь и как-нибудь...

Пушкин А.С.

Последний раз редактировалось Stilet; 08.07.2008 в 08:06.
Detka вне форума Ответить с цитированием
Старый 08.07.2008, 01:59   #9
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Попробуй так
Код:
n := y div listbox1.ItemHeight ;
  if n<listbox1.Items.Count then
  listbox1.Hint:= listbox1.Items.Strings[n]
  else listbox1.Hint:= '';
"List index out of bounds (18)" значит что строка не существует, а мы с ней работать хотим
eoln вне форума Ответить с цитированием
Старый 08.07.2008, 02:25   #10
Ring0Sn
Форумчанин
 
Аватар для Ring0Sn
 
Регистрация: 06.09.2007
Сообщений: 239
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
Попробуй так
Код:
n := y div listbox1.ItemHeight ;
  if n<listbox1.Items.Count then
  listbox1.Hint:= listbox1.Items.Strings[n]
  else listbox1.Hint:= '';
"List index out of bounds (18)" значит что строка не существует, а мы с ней работать хотим
Во млин математики
для тех кто в танке существет ItemAtPos
Ring0Sn вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
составить программу для вычисления значения функции и результаты выдать на печать. Бейсик SvetlanaFF Помощь студентам 13 28.10.2018 19:24
Сообщение об ошибке:Cannot perfom this operation on a closed dataset! Tanuska___:) БД в Delphi 1 04.08.2008 17:52
Как убрать сообщение об ошибке? AngelOfDeath Работа с сетью в Delphi 2 01.05.2008 11:44
Перехватить сообщение об ошибке Insainer Общие вопросы Delphi 5 25.04.2008 20:39