Главная страница
    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.045 c
1-1152993041
1234
2006-07-15 23:50
2006.08.27
Завершение работы


2-1154670842
Генадий
2006-08-04 09:54
2006.08.27
Dspack


15-1154073849
Petr V. Abramov
2006-07-28 12:04
2006.08.27
Oracle XE


15-1154075759
Separator
2006-07-28 12:35
2006.08.27
Посоветуйте почтовый сервер под Windows


15-1154073840
Ketmar
2006-07-28 12:04
2006.08.27
ни у кого не завалялся wrapper для 7za.dll?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский