Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.024 c
14-1086308022
SPeller
2004-06-04 04:13
2004.06.20
Microsoft получила патент на двойной клик мыши


4-1084263440
Oyster
2004-05-11 12:17
2004.06.20
Скрытие приложения из списка задач


4-1084787168
SergD
2004-05-17 13:46
2004.06.20
Как под LPT сделать кнопку и отследить ее состояние?


1-1085933661
tamroF
2004-05-30 20:14
2004.06.20
Помажите: random в DLL


4-1084725139
andruxin
2004-05-16 20:32
2004.06.20
помогите с отловом WM_SYSCOMMAND




   Наверх