![]() |
|
|
#1
|
|||
|
|||
|
Просто впал в ступор. Проблема в следующем: суть - есть массив из элементов TStrings. Через диалог открытия файлов в каждый элемент массива должен записываться список из нескольких файлов, полученных через диалог открытия:
Код:
if OpenDialog1.Execute = true
then fls[Current] := OpenDialog1.Files
else ShowMessage('Загрузка отменена');Код:
if OpenDialog1.Execute = true
then tmp[Current] := OpenDialog1.Files.Count
else ShowMessage('Загрузка отменена'); |
|
#2
|
||||
|
||||
|
инкремента Current нет
|
|
#3
|
|||
|
|||
|
Есть, но он несколько в другом месте программы. Всё сюда тащить бессмысленно.
Я не зря указал, что если массив из TSrings заменить массивом целых, всё записывается как надо и куда надо ![]() |
|
#4
|
||||
|
||||
|
упс, про Assign то не написал
![]() |
|
#5
|
|||
|
|||
|
Цитата:
|
|
#6
|
|||
|
|||
|
Цитата:
![]() |
|
#7
|
||||
|
||||
|
Используй
Код:
tmp[current].AddStrings(OpenDialog1.Files); |
| Этот пользователь сказал Спасибо YVitaliy за это полезное сообщение: | ||
iosfixed (22.07.2012)
| ||
|
#8
|
||||
|
||||
|
Код:
tmp[Current].Assign(OpenDialog1.Files); |
| Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
iosfixed (22.07.2012)
| ||
|
#9
|
|||
|
|||
|
Спасибо большое, теперь всё работает
![]() Если не затруднит, объясните на пальцах, что значит "ссылается на один и тот же объект?". Я понимаю, что OpenDialog1.Files каждый раз новый, но ведь элементы же тоже меняются. |
|
#10
|
||||
|
||||
|
Используя оператор ":=" в случае обьектов (не переменных), ты передаешь ссылку на обьект. Проще говоря, обьекты в Delphi - это ссылки на диапазоны памяти, ты этим ":=" первой "ссылке" присваиваещь значение "второй", как результат, обе они ссылаются на один и тот же обьект. Кхм
![]() |
|
#11
|
|||
|
|||
|
Цитата:
|