|
#1
|
|||
|
|||
array of TStrings
Просто впал в ступор. Проблема в следующем: суть - есть массив из элементов 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
|
|||
|
|||
Цитата:
|