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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2011, 15:25   #1
alekstav
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 13
По умолчанию Вывод из ListBox в Мемо

Здравствуйте.
У меня в поле ListBox находится список стран, я хочу чтоб при движении курсора в поле ListBox в Мемо открывалось содержимое файла txt соответственно про каждую страну.
Сейчас у меня получается, что открывается описание только для первой страны и при дальнейшем перемещении курсора нечего не происходит,
Подскажите, что нужно подправить или если мой код не рационален, то, как сделать более удачный код.
Код:
procedure TForm2.Button4Click(Sender: TObject);
  var
   k:string;    
   i:integer;
begin
    ListBox1.items.add('Дания');
    ListBox1.items.add('Исландия');
    ListBox1.items.add('Италия');
    ListBox1.items.add('Нидерланды');
    
ListBox1.itemindex:=0;

    case ListBox1.ItemIndex of
      0: k:='C:\5\222\1.txt';  { Дания }
      1: k:='C:\5\222\2.txt';{ Исландия }
      2: k:='C:\5\222\3.txt'; { Италия }
      3: k:='C:\5\222\4.txt'; {Нидерланды}

     end;
      memo1.Lines.LoadFromFile(k);

     end;
alekstav вне форума Ответить с цитированием
Старый 04.01.2011, 15:32   #2
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Дык ты обнуляешь итеминдекс...

Код:
ListBox1.itemindex:=0;
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 04.01.2011, 19:08   #3
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Заполнение Мемо по ListBox.zip
Но лучше ч/з ини-файл
Заполнение Мемо по ListBox_2.zip

Цитата:
Код:
    ListBox1.items.add('Дания');
    ListBox1.items.add('Исландия');
    ListBox1.items.add('Италия');
    ListBox1.items.add('Нидерланды');
    
ListBox1.itemindex:=0;

    case ListBox1.ItemIndex of
      0: k:='C:\5\222\1.txt';  { Дания }
      1: k:='C:\5\222\2.txt';{ Исландия }
      2: k:='C:\5\222\3.txt'; { Италия }
      3: k:='C:\5\222\4.txt'; {Нидерланд}
А так больше никогда-никогда не делай. Программа должна быть гибкой.

Последний раз редактировалось Sibedir; 04.01.2011 в 19:41.
Sibedir вне форума Ответить с цитированием
Старый 05.01.2011, 10:54   #4
alekstav
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 13
По умолчанию

Sibedir Спасибо большое!
alekstav вне форума Ответить с цитированием
Старый 05.01.2011, 11:40   #5
alekstav
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 13
По умолчанию

Sibedir Ваш код очень компактен и удобен. Все работает, но вот мне бы хотелось, чтоб файлы txt не были в общем каталоге с программой, так как их будет очень много. Хотелось бы их разложить по папкам. Как я понял файл txt с содержанием ListBox, тогда должен лежать в той же папке, что и файлы которые должны будут читаться (так как судя по всему путь к файлам частично берется от файла с названиями что используются в ListBox), но вот, что то не получается их вызвать если они лежать в подпапке с программой, при этом когда кладешь в каталог с программой все работает.
Подскажите, что нужно в вашем коде подправить, чтоб файлы стали запускаться из подпапок?
вот как у меня сейчас выглядит Ваш код
Код:
begin
  ListBox1.Items.LoadFromFile ('C:\2\Словарь\Информация1\Страны\А\123.txt');
  ListBox1.ItemIndex := 0;
  ListBox1Click (Sender);
  end;

 procedure TForm2.ListBox1Click(Sender: TObject);
begin
  if ListBox1.ItemIndex > -1 then begin
    Memo1.Lines.LoadFromFile (ListBox1.Items[ListBox1.ItemIndex] + '.txt');
  end;
end;
с:\2\Словарь\Информация1\Страны\А\1 23.txt В этом файле лежат название стран на букву "А". В этой же папке лежат файлы с каждой страной относящейся к букве "А".
alekstav вне форума Ответить с цитированием
Старый 05.01.2011, 15:09   #6
MoBLer
Пользователь
 
Аватар для MoBLer
 
Регистрация: 30.12.2010
Сообщений: 91
По умолчанию

Попробуй так
Код:
 Memo1.Lines.LoadFromFile ('C:\2\Словарь\Информация1\Страны\А\'+ListBox1.Items[ListBox1.ItemIndex] + '.txt');
Я тебе помог, добавь отзыв)))))
Статьи по программированию
MoBLer вне форума Ответить с цитированием
Старый 05.01.2011, 20:09   #7
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Опять же, лучше через ini
Заполнение Мемо по ListBox_3.zip
Sibedir вне форума Ответить с цитированием
Старый 05.01.2011, 20:35   #8
alekstav
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 13
По умолчанию

MoBLer Спасибо.
Sibedir Да наверно, лучше через ini. Буду осваивать этот способ.
alekstav вне форума Ответить с цитированием
Старый 22.08.2014, 11:33   #9
sadovod1972
Пользователь
 
Регистрация: 09.07.2014
Сообщений: 12
По умолчанию

А есть ли способ сделать так, чтобы описание при компиляции было в ехе файле, то есть был всего один ехе файл, без ini?
sadovod1972 вне форума Ответить с цитированием
Старый 22.08.2014, 12:01   #10
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Вшить ini-файл в тело exe
Shouldercannon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод символа перевода строки из МЕМО в текст. файл (Delphi) ChEaTeR-abc Помощь студентам 5 02.07.2010 20:43
Вывод файлов в поле МЕМО на Delphi ChEaTeR-abc Помощь студентам 17 01.07.2010 14:59
вывод 2ух чисел в мемо с выравниванием меньшего к правому краю большего nuevegramodelamor Помощь студентам 2 27.05.2010 16:28
вывод тtrстовой таблицы в окно мемо вDelphi Vitaliy_Kom Помощь студентам 0 27.10.2009 19:40
Как сделать с двумя комбобоксами вывод на мемо NeG Общие вопросы Delphi 5 20.12.2007 04:19