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

Вниз

Чертовщина с TStringList.Objects   Найти похожие ветки 

 
TEXHAPb   (2004-06-08 14:25) [0]

Пример:

  qService.SQL.Text:="SELECT name, telephone FROM telephone_list ";
  qService.Open;
  while not qService.Eof do
   begin
    S:=qService.FieldByName("telephone").AsString;
    //S:="aaa";
    cbx1Number.Items.AddObject(qService["name"],TObject(S));
    qService.Next;
   end;
  ShowMessage(string(cbx1Number.Items.Objects[0]));


При этом ShowMessage выводит ерунду. Если S присваивать константу, то всё работает отлично. В чем здесь чертовщина?


 
TEXHAPb   (2004-06-08 14:33) [1]

Ну да! Я ламер, это же указатель!
А как сделать, чтобы такая система работала?
Помогите!


 
MBo ©   (2004-06-08 14:35) [2]

в цикле ты добавляешь указатель на строку.
В следующей итерации используется та же самая строка, она перераспределяется (указывает уже на другую область памяти) - а предыдущее Objects указывает на мусор (ведь механизм подсчета ссылок обойден)


 
DieHard   (2004-06-08 14:42) [3]

UniqueString?


 
TEXHAPb   (2004-06-08 15:11) [4]

Может Initialize(S) поможет?
Но с ним всё равно что-то не так.

UniqueString? - как его здесь применять?


 
TEXHAPb   (2004-06-08 15:12) [5]

Может Initialize(S) поможет?
Но с ним всё равно что-то не так.

UniqueString? - как его здесь применять?


 
Семен Сорокин ©   (2004-06-08 15:23) [6]

NewStr поможет, но надо незабывать и про DisposeStr когда строки не нужны.


 
TUser ©   (2004-06-08 19:10) [7]

PChar?


 
Mim1 ©   (2004-06-08 20:16) [8]

Создайте обьект с одним свойством - строка. Грамаздко зато расширяемо, потом можно будет добавить новых свойств.
Не забывайте что обьект потом надо будет уничтожить.


 
Юрий Федоров ©   (2004-06-08 22:20) [9]

Нафига объект, если есть вариант Семен Сорокин ©   (08.06.04 15:23) [6]


 
Юрий Федоров ©   (2004-06-08 22:22) [10]

Только не NewStr а StrNew
и соответственно StrDispose
:-)


 
Семен Сорокин ©   (2004-06-09 08:50) [11]


> Юрий Федоров ©   (08.06.04 22:22) [10]
> Только не NewStr а StrNew
> и соответственно StrDispose
> :-)


ну NewStr и DisposeStr в D7 есть тоже :)



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

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

Наверх




Память: 0.49 MB
Время: 0.021 c
1-1086672440
BanderLog_t
2004-06-08 09:27
2004.06.20
TreeView с CheckBox


1-1086672164
zetovich
2004-06-08 09:22
2004.06.20
string -> real (in pascal)


14-1085944450
Тимур
2004-05-30 23:14
2004.06.20
Game Shark


4-1084351578
Gost1
2004-05-12 12:46
2004.06.20
ImportTable


3-1085577800
starik30
2004-05-26 17:23
2004.06.20
Decimal