Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
ВнизКак работать с TStrings Найти похожие ветки
← →
ТехникПТО © (2005-03-03 20:16) [0]Допустим я переменной s:tStrings s:=listbox.items
и как эти итемс от туда досатвать??
← →
Anatoly Podgoretsky © (2005-03-03 20:21) [1]По индексу
← →
TUser © (2005-03-03 20:21) [2]
> s:tStrings
TStringList
.Strings[i] == [i]
← →
Checist [root] (2005-03-03 20:21) [3]А если s[i], где i- индекс итема
← →
P.N.P. © (2005-03-03 20:23) [4]var
s:Tstrings;
begin
s:=TstringList.Create;
s.assign(ListBox.Items);
showmessage(s[0]);
end;
← →
ТехникПТО © (2005-03-03 20:32) [5]
> var
> s:Tstrings;
> begin
> s:=TstringList.Create;
> s.assign(ListBox.Items);
> showmessage(s[0]);
> end;
а как узнать сколько всего индексов?
← →
Anatoly Podgoretsky © (2005-03-03 20:34) [6]Count
← →
Дмитрий Мыльников (2005-03-03 23:21) [7]В принципе можно и не делать копию списка строк через создание экземпляра TStringList и последующим вызовом assign.
То есть код
var
S: TStrings
str1: string;
begin
...
S := ListBox.Items;
...
str1 := S[I];
будет вполне рабочий. Главное, чтобы пока мы используем S, содержимое ListBox не менялось и сама форма не удалялась.
Если же гарантии сохранности ListBox или его содержимого нет, то следует использовать что-то типа:
var
S: TStringList;
str1: string;
begin
...
S: = TStringList.Create;
try
...
S.Assigned(ListBox.Items);
...
str1 := S[i]; //используем содержимое списка
...
finally
S.Free; //после того как попользовались ОБЯЗАТЕЛЬНО УДАЛЯЕМ
//ЭКЗЕМПЛЯР КЛАССА !!!
end;
...
end;
Да, поскольку свойство Strings[Index:integer]:string у TStrings объявлено как default, то его можно опускать.
Кстати, в принципе допустим и такой код
var
S: TString;
str1: string;
begin
...
S: = TStringList.Create;
try
... //и далее предыдущий пример.
То есть, переменную можно объявить класса-предка от той, которую реально создадим, если это, конечно, нужно.
← →
P.N.P. © (2005-03-03 23:28) [8]>Дмитрий Мыльников (03.03.05 23:21) [7]
>ОБЯЗАТЕЛЬНО УДАЛЯЕМ
Ничего подобного, локальные переменные уничтожаются автоматом
при завершении процедуры.
См. хелп:
Each time a procedure or function is called, it allocates a set of local variables; on exit, the local variables are disposed of. Compiler optimization may eliminate variables earlier
← →
jack128 © (2005-03-03 23:33) [9]P.N.P. © (03.03.05 23:28) [8]
Ничего подобного,
Дима сказал, что мы иничтожаем ЭКЗЕМПЛЯР объекта, а не переменную, в которорй хранится указатель на этот экземпляр..
← →
P.N.P. © (2005-03-03 23:42) [10]Да, действительно, я неправ.
Требуется освобождение памяти.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c