Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 034

/ вопрос решён /

Приветствую, уважаемые эксперты!
Прошу прощения за глупый вопрос, видимо мозг за седня я себе сломал окончательно...
Есть 6 лист боксов.
ListBox1,ListBox2,ListBox3,ListBox4,ListBox5,ListBox6.
В каждом есть текст. Например ListBox1 там
1
2
3
ListBox2 там
а
б
в
г
д
И т д.
Мне нужно В ListBox6 добавить все эти списки.
Тоесть чтобы в ListBox6 было
1
2
3
а
б
в
и т д.
как это раелизовать( Циклом
For i:=o to ListBoxN.count-1 do begin
ListBoxN.Itemindex:=i;
ListBox6.Items.add(ListBoxN.Items[ListBoxN.Itemindex])
end;
Глупо, не оптимизировано, а как по другому что то в голову не приходит...
Если ListBox6.Items.Add(ListBoxN.items.Text);
то получится так
допустим в этом листбоксе было уже
1
2
3
то после добавления станет
1
2
3
а, б, в
а мне нужно
1
2
3
а
б
в

за раннее благодарен... Сильно не ругайтесь за глупый вопрос :)

BloodVIRUS Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: BloodVIRUS (статус: Посетитель)
Вопрос отправлен: 23 июля 2009, 22:10
Состояние вопроса: решён, ответов: 2.

Ответ #1. Отвечает эксперт: Егор

Здравствуйте, BloodVIRUS!
Можно воспользоваться функцией AddStrings:

...
ListBox1.Items.AddStrings(ListBox2.Items); // добавляем в ListBox1 все строчки из ListBox2
...

Ответ отправил: Егор (статус: 10-ый класс)
Время отправки: 23 июля 2009, 22:21
Оценка за ответ: 5

Ответ #2. Отвечает эксперт: min@y™

У свойства TListBox.Items есть метод AddStrings(). Воспользуйся.

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 23 июля 2009, 22:22
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 11; последнее сообщение — 25 июля 2009, 18:22; участников в обсуждении: 3.
BloodVIRUS

BloodVIRUS (статус: Посетитель), 24 июля 2009, 22:37 [#1]:

Всем спасибо :)
BloodVIRUS

BloodVIRUS (статус: Посетитель), 25 июля 2009, 12:28 [#2]:

Ладно, раз уш начал глупые вопросы задавать, задам на последок еще один.
ListBox1.Items.SaveToFile();
Сохраняет списки !В! файл, тоесть если что то было в файле, то он добавит к имеющемуся новое. А как сделать так чтобы он файл перезаписывал? не используя DeleteFile();
min@y™

min@y™ (статус: Доктор наук), 25 июля 2009, 12:43 [#3]:

ListBox1.Items.SaveToFile() файл перезаписывает.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
BloodVIRUS

BloodVIRUS (статус: Посетитель), 25 июля 2009, 16:59 [#4]:

хм, у меня очень часто он не перезаписывает, а добавляет к имеющемуся. Кто нибудь сталкивался с подобным ?
Егор

Егор (статус: 10-ый класс), 25 июля 2009, 17:05 [#5]:

хм...
код в студию, пожалуйста
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
min@y™

min@y™ (статус: Доктор наук), 25 июля 2009, 17:05 [#6]:

А ты из этого файла что-то загружаешь в этот ListBox?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
BloodVIRUS

BloodVIRUS (статус: Посетитель), 25 июля 2009, 17:12 [#7]:

Да, грубо говоря, при открытии программы в лист бокс загружается этот файл, в работе программы происходят действия со списком, при закрытии он снова сохраняется в тот файл.
min@y™

min@y™ (статус: Доктор наук), 25 июля 2009, 17:16 [#8]:

Тогда понятно. Загруженная информация сохраняется в ListBox + к ней добавляется ещё информация в процессе работы, потом всё это сохраняется в файл. Элементарно, ватсон.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
BloodVIRUS

BloodVIRUS (статус: Посетитель), 25 июля 2009, 17:26 [#9]:

Ну дак что получается, взяли файл, загрузили его, удалили некоторые строчки, некоторые добавили, сохраняем, и вместо того чтобы переписать файл, он возьмет то что было до загрузки, и добавит к нему что что находится сейчас в лист боксе... а как сделать чтобы он не добавлял а именно перезаписывал?
min@y™

min@y™ (статус: Доктор наук), 25 июля 2009, 17:46 [#10]:

Цитата:


удалили некоторые строчки, некоторые добавили

А ты уверен, что некоторые строчки удалились?
Код давай.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
BloodVIRUS

BloodVIRUS (статус: Посетитель), 25 июля 2009, 18:22 [#11]:

ммммм код код... Я пишу плеер. Во время работы плеера я могу много раз очистить лист бокс, добавить новые строчки. То есть определенного кода нет, есть код всего плеера... Не выкладывать же его... Тоесть да, я точно уверен что строчки удалились, (ListBox1.DeleteSelected, ListBox1.Clear)
На OnCerate Он загружает файл со списком треков, на OnClose он сохраняет, с моей проблемкой приходится сохранять так:

if FileExists(extractFilePath(application.ExeName)+'\pl.dat')=false then
List.Items.SaveToFile(extractFilePath(application.ExeName)+'\pl.dat') else begin
if DeleteFile(ExtractFilePath(application.ExeName)+'\pl.dat')= True then
List.Items.SaveToFile(extractFilePath(application.ExeName)+'\pl.dat') else
MessageBox(0,'Ошибка.','Ошибка !',mb_ok) ; end;
Но мне кажется можно проще...

31 января 2011, 19:36: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 16 ноября 2024, 16:01
Выполнено за 0.02 сек.