|
Вопрос # 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 (статус: Посетитель)
Вопрос отправлен: 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 (статус: Посетитель), 24 июля 2009, 22:37 [#1]:
Всем спасибо
|
|
BloodVIRUS (статус: Посетитель), 25 июля 2009, 12:28 [#2]:
Ладно, раз уш начал глупые вопросы задавать, задам на последок еще один.
ListBox1.Items.SaveToFile();
Сохраняет списки !В! файл, тоесть если что то было в файле, то он добавит к имеющемуся новое. А как сделать так чтобы он файл перезаписывал? не используя DeleteFile();
|
|
min@y™ (статус: Доктор наук), 25 июля 2009, 12:43 [#3]:
ListBox1.Items.SaveToFile() файл перезаписывает.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
BloodVIRUS (статус: Посетитель), 25 июля 2009, 16:59 [#4]:
хм, у меня очень часто он не перезаписывает, а добавляет к имеющемуся. Кто нибудь сталкивался с подобным ?
|
|
Егор (статус: 10-ый класс), 25 июля 2009, 17:05 [#5]:
хм...
код в студию, пожалуйста
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
|
min@y™ (статус: Доктор наук), 25 июля 2009, 17:05 [#6]:
А ты из этого файла что-то загружаешь в этот ListBox?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
BloodVIRUS (статус: Посетитель), 25 июля 2009, 17:12 [#7]:
Да, грубо говоря, при открытии программы в лист бокс загружается этот файл, в работе программы происходят действия со списком, при закрытии он снова сохраняется в тот файл.
|
|
min@y™ (статус: Доктор наук), 25 июля 2009, 17:16 [#8]:
Тогда понятно. Загруженная информация сохраняется в ListBox + к ней добавляется ещё информация в процессе работы, потом всё это сохраняется в файл. Элементарно, ватсон.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
BloodVIRUS (статус: Посетитель), 25 июля 2009, 17:26 [#9]:
Ну дак что получается, взяли файл, загрузили его, удалили некоторые строчки, некоторые добавили, сохраняем, и вместо того чтобы переписать файл, он возьмет то что было до загрузки, и добавит к нему что что находится сейчас в лист боксе... а как сделать чтобы он не добавлял а именно перезаписывал?
|
|
min@y™ (статус: Доктор наук), 25 июля 2009, 17:46 [#10]:
Цитата:
удалили некоторые строчки, некоторые добавили
А ты уверен, что некоторые строчки удалились?
Код давай.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
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)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|