Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/16: Рейтинг темы: голосов - 16, средняя оценка - 4.88
aleks_tav
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 11
1

Вывод из ListBox в Мемо

04.01.2011, 15:21. Просмотров 2962. Ответов 8
Метки нет (Все метки)

Здравствуйте.
У меня в поле ListBox находится список стран, я хочу чтоб при движении курсора в поле ListBox в Мемо открывалось содержимое файла txt соответственно про каждую страну.
Сейчас у меня получается, что открывается описание только для первой страны и при дальнейшем перемещении курсора нечего не происходит,
Подскажите, что нужно подправить или если мой код не рационален, то, как сделать более удачный код.
Delphi
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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;
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2011, 15:21
Ответы с готовыми решениями:

Вывод в мемо
не могу вывести в мемо значение "попал/не попал" Оно выводится, но не в том...

Вывод в мемо
Есть процедура, которая читает файл побайтово и записывает в мемо каждый байт...

Вывод в Мемо счета
unit Unit1; interface uses Windows, Messages, SysUtils, Variants,...

Вывод текста в Мемо
Решил спарсить 1-у строчку с html кода, но вывелась она в Мемо не так как надо,...

Вывод надписи в мемо
procedure TForm1.Button5Click(Sender: TObject); var PageProfile, name,...

8
Jazon_deenAlt
4111 / 986 / 191
Регистрация: 09.04.2009
Сообщений: 4,226
04.01.2011, 15:24 2
попробуйте забрать
Delphi
1
ListBox1.itemindex:=0;
0
aleks_tav
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 11
04.01.2011, 15:27  [ТС] 3
Jazon_deenAlt
Я не совсем понимаю что это значит "попробуйте забрать ". Если можно поподробнее поясните, пожалуйста.
0
Jazon_deenAlt
4111 / 986 / 191
Регистрация: 09.04.2009
Сообщений: 4,226
04.01.2011, 15:39 4
aleks_tav, как я понимаю происходит все так. вы тыцкаете в листбоксе на строчку, она выделяетса, потом вы цокаете на баттон4 и должно загрузитса нужное описание. в том варианте нажатия на баттон что вы выложели
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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;
есть рядок
Delphi
1
ListBox1.itemindex:=0;
который при каждом нажатии делает так что итеминдекс присваиватса 0, следовательно в
Delphi
1
2
3
4
5
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'; {Нидерланды}
k всегда будет присваиватса путь 'C:\5\222\1.txt' если из кода убрать
Delphi
1
ListBox1.itemindex:=0;
то код будет таким:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm2.Button4Click(Sender: TObject);
  var
   k:string;    
   i:integer;
begin
    ListBox1.items.add('Дания');
    ListBox1.items.add('Исландия');
    ListBox1.items.add('Италия');
    ListBox1.items.add('Нидерланды');
    
    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;
попробуйте сделать его таким
0
19vitek
727 / 403 / 95
Регистрация: 19.12.2010
Сообщений: 756
04.01.2011, 15:54 5
aleks_tav, текст кода правильный. Я по другому расставил обработчики события.
1
Вложения
Тип файла: rar Страны.rar (5.1 Кб, 54 просмотров)
aleks_tav
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 11
05.01.2011, 09:57  [ТС] 6
19vitek спасибо большое за помошь!
Может вопрос не в тему, но как сдалать полосу прокрутки в МЕМО? Она вообще там включается?
0
virtual[ity]
157 / 137 / 64
Регистрация: 05.06.2010
Сообщений: 610
05.01.2011, 10:18 7
Цитата Сообщение от aleks_tav Посмотреть сообщение
Может вопрос не в тему, но как сдалать полосу прокрутки в МЕМО? Она вообще там включается?
Объект инспектор -> Скролл бар! Выбирай любой!
0
aleks_tav
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 11
05.01.2011, 15:16  [ТС] 8
virtual[ity], спасибо! Нашел.

Добавлено через 4 часа 36 минут
Подскажите, пожалуйста, что исправить в этом коде, чтоб файлы txt конкретных стран можно было положит не в общий каталог программы, а в отдельную папку. Дело в том, что файлов будет много и их лучше сразу рассортировать, а то можно будет запутаться самому.
Этот код работает нормально, но если все файлы лежат в корне программы, если их кладешь в подпапку, программа уже не может найти файлы.
"с:\2\Словарь\Страны\А\123.txt" В этом файле лежат название стран на букву "А" он нужен для заполнения ListBox. В этой же папке лежат файлы с каждой отдельной страной начинающейся с буквы "А".
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
begin
  ListBox1.Items.LoadFromFile ('C:\2\Словарь\Страны\А\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;
0
aleks_tav
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 11
06.01.2011, 19:31  [ТС] 9
Все разобрался. Всем спасибо!

Добавлено через 22 часа 58 минут
Здравствуйте.
Я вот в очередной раз решил переделать программу и теперь вот такая проблема:
У меня есть имя файла с маской (находящиеся в ListBox1), известна директория, в которой лежит этот файл, а вот в какой поддиректории он лежит, я не знаю. Как мне исправить мой код (что написать вместо «?????») или может, вообще, как то по другому нужно вызвать этот файл? Подскажите, пожалуйста.
Код
begin
  if ListBox1.ItemIndex > -1 then begin
    Form2.Memo1.Clear;
      Form2.Memo1.Lines.LoadFromFile ('C:\!Dictionary\'+ ??????? +ListBox1.Items[ListBox1.ItemIndex]);
    end;
     Form2.Show;
 end;
0
06.01.2011, 19:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2011, 19:31

Вывод по 3 слова в Мемо
Помогите сделать так, чтобы выводил сообщение от клиента по 3 слова. Если 4...

Вывод данных из Мемо в СтрингГрид
Прошу, посмотрите и скажите, что я не так делаю? весь день просидел и ничего...

Вывод данных из Мемо в Stringgrid
Добрый вечер! Дан массив 9*9! найти сумму по каждой строке и найти из них...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru