Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.27;
Скачать: CL | DM;

Вниз

TstringList.AddObject   Найти похожие ветки 

 
webpauk   (2006-08-07 15:42) [0]

Как в TstringList.Item.AddObject засунуть переменную типа String?
TstringList.Item.AddObject(fText, Tobject(fStr)) - запихивает, но при чтении TstringList.Items.Objects[N] - выдает кракозябры


 
clickmaker ©   (2006-08-07 15:49) [1]

память надо в куче выделять
GetMem или AllocMem
var s: PChar;

s := AllocMem(200);
AddObject(fText, TObject(s));

потом не забыть FreeMem сделать


 
Romkin ©   (2006-08-07 15:49) [2]

Угу. fStr наверно уже не существует при чтении? Может и AV выдать :)
string - объект с регулируемым временем жизни, а когда ты его преобразуешь к типу TObject - Delphi считает, что ты знаешь, что делаешь. И не учитывает эту ссылку. И когда все ссылки на эту строку уходят из области видимости - память освобождается. :)


 
Сергей М. ©   (2006-08-07 15:50) [3]

Показывай как читаешь ..


 
StriderMan ©   (2006-08-07 15:50) [4]

может так прокатит?
TstringList.Item.AddObject(fText, Tobject(@fStr[1]))
...
PChar(..StringList.Items.Objects[n])


 
webpauk   (2006-08-07 15:54) [5]


> Сергей М. ©   (07.08.06 15:50) [3]

fS:=String(ComboBox1.Items.Objects[ComboBox1.ItemIndex])


 
webpauk   (2006-08-07 15:57) [6]

а вообще можно создать class с единственным свойством типа String - и проблемы нет


 
StriderMan ©   (2006-08-07 15:59) [7]


> webpauk   (07.08.06 15:57) [6]

верно. и никаких танцев с бубном. только потом не забудь все объекты разрушить.

Правда памяти такая система поболее скушает.


 
Сергей М. ©   (2006-08-07 16:00) [8]


> webpauk   (07.08.06 15:54) [5]


Не надо гнать пургу.

Это

procedure TftmMain.Button1Click(Sender: TObject);
var
 stringList: TStringList;
 fText, fStr: String;
begin
 fText := "fText";
 fStr := "fStr";
 stringList := TStringList.Create;
 stringList.AddObject(fText, Tobject(fStr));
 Showmessage(String(stringList.Objects[0]));
end;

100%-но работает.

Все остальное - к телепатам.


 
clickmaker ©   (2006-08-07 16:02) [9]


> Сергей М. ©   (07.08.06 16:00) [8]

фокусник, однако )
не вышел за пределы видимости функции, вот ссылочка и жива.
А в любом другом месте Objects[0] будет указывать на битую область памяти.
см. [1] и не надо лохматить бабушку


 
Сергей М. ©   (2006-08-07 16:06) [10]


> clickmaker ©   (07.08.06 16:02) [9]
>
>


> фокусник, однако )


А нафиг заниматься телепатией ?)


> см. [1] и не надо лохматить бабушку


Не надо тренировать телепатор подобным образом)
Ибо развращает автора)


 
Сергей М. ©   (2006-08-07 16:08) [11]


> clickmaker ©   (07.08.06 16:02) [9]


И про время жизни тоже не надо бабушку лохматить - мне это известно не хуже чем тебе)


 
clickmaker ©   (2006-08-07 16:29) [12]


> Сергей М. ©   (07.08.06 16:06) [10]

причем тут телепатия, не асилил... ну да ладно )


 
Сергей М. ©   (2006-08-07 17:08) [13]


> clickmaker ©   (07.08.06 16:29) [12]


> не асилил


В словаре "падонкаф" оно фигурирует как "ниасилил" (с)
Ну да ладно)


 
clickmaker ©   (2006-08-07 17:10) [14]


> В словаре "падонкаф" оно фигурирует как "ниасилил"

Гы.. я тока учусь ))


 
Сергей М. ©   (2006-08-07 17:17) [15]


> clickmaker ©   (07.08.06 17:10) [14]


> Гы.. я тока учусь ))


Не стОит.



Страницы: 1 вся ветка

Текущий архив: 2006.08.27;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.051 c
4-1146849360
Teddy24
2006-05-05 21:16
2006.08.27
Как средствами API поключить сетевой диск?


15-1154062954
Ega23
2006-07-28 09:02
2006.08.27
С Днём рождения! 28 июля


15-1154599017
Чапаев
2006-08-03 13:56
2006.08.27
Как настоить Jimm?


15-1154426525
Kolan
2006-08-01 14:02
2006.08.27
Как сделать тесты для проверки кода.


3-1150457691
avsam
2006-06-16 15:34
2006.08.27
ODAC: Exec PL/SQL