Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.041 c
2-1154946536
lllEl
2006-08-07 14:28
2006.08.27
отчеты


2-1154604925
Dysan
2006-08-03 15:35
2006.08.27
чем можно заменить TXMLDocument?


2-1154874742
K_Lock
2006-08-06 18:32
2006.08.27
StringGrid to BLOB


15-1154455799
grisme
2006-08-01 22:09
2006.08.27
Прилеплялка WinAMP :)


2-1154673907
Yegorchic
2006-08-04 10:45
2006.08.27
Сравнение двух слов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский