![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как присвоить значения одной переменной другой (TStringList) [D7, WinXP]
kyn66 © (2005-10-20 11:04:00)Уважаемые мастера, САБЖ сопсна. Есть две переменных
Var
St1, St2 : TStringList;
Begin
St1 := St2; // ???
St1.Assign(St2); // ???
end;
Как правильно? И там и там вылетает ошибка 8-(
Baltika-7 (2005-10-20 11:50:00) [21]
> kyn66 © (20.10.05 11:36) [4]
Прочувствуй разницу?
В случае st2 := st1ты присваиваешь указатель,
В случае st2.Assign(st1)ты копируешь данныеиз st1 в st2? полностью заменяя содержимоеst2.
В случае st2.AddStrings(s1)ты добавляешь данныеиз st1 в st2.
Baltika-7 (2005-10-20 11:50:00) [22]
> kyn66 © (20.10.05 11:36) [4]
Прочувствуй разницу?
В случае st2 := st1ты присваиваешь указатель,
В случае st2.Assign(st1)ты копируешь данныеиз st1 в st2? полностью заменяя содержимоеst2.
В случае st2.AddStrings(s1)ты добавляешь данныеиз st1 в st2.
kyn66 (2005-10-20 11:36:00) [23]Создание ессно пропущено для краткости вопроса.
А естьли какая разница, если первая переменная у меня будет полем записи и ей я присваиваю значения?
Type
TBiletArray = packed record
B_Nomer : packed array[0..255]of Char;
B_St1 : TStringList;
B_St2 : TStringList;
B_St3 : TStringList;
B_St4 : TStringList;
B_St5 : TStringList;
B_St6 : TStringList;
end;
Var
B_Ar : TBiletArray;
...
B_Ar.St1 := St1;
...
Вот ведь не хочет и все тут 8-(
jack128 (2005-10-20 11:29:00) [24]kyn66 © (20.10.05 11:04)
Var
St1, St2 : TStringList;
Begin
St1 := St2; // ???
St1.Assign(St2); // ???
end;
Как правильно? И там и там вылетает ошибка 8-(
вообще то не мешало бы сначала создать эти стринг листы ;)
TUser (2005-10-20 11:12:00) [25]В первом случае ошибки не будет.
Eraser (2005-10-20 11:09:00) [26]
> kyn66 © (20.10.05 11:04)
St1.Clear;
St1.AddStrings(St2);
ИлиSt1.Text := St2.Text;