Главная страница
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.04 c
1-1086629822
Алексей________
2004-06-07 21:37
2004.06.20
Проблема с ToolButton


1-1086658307
Глеб
2004-06-08 05:31
2004.06.20
Шрифт в RichEdit


14-1085775071
Yorick
2004-05-29 00:11
2004.06.20
Существует ли любовь?


3-1085475412
serg128
2004-05-25 12:56
2004.06.20
Есть ли какие-то агрегирующие функции в TClientDataSet?


1-1086255561
DIS
2004-06-03 13:39
2004.06.20
Перевод символа в верхний регистр