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

Вниз

Как в TStringList.AddObject вместо объекта integer засунуть?   Найти похожие ветки 

 
Miwa ©   (2004-02-20 17:18) [0]

TStringList.AddObject("qwer",pointer(a)) не проканает, поскольку мне не хотелось бы еще где-то хранить инты. Мне это надо для хранения пар ID+значение из запроса в БД.


 
MBo ©   (2004-02-20 17:21) [1]

У всех проканывает, а у тебя не проканает?
Вопрос задай по-человечески...


 
Guest   (2004-02-20 17:21) [2]

Pointer(Fields[0].AsInteger)


 
miwa ©   (2004-02-20 17:28) [3]

>>Pointer(Fields[0].AsInteger)
А куда этот Fields[0].AsInteger денется после следующего запроса? Насколько я понял, туда засовывается ссылка на объект, (или на целое число в предложенном варианте).
У меня ТStringList - глобальная переменная, которая заполняется в разных функциях значениями локальных переменных.
Когда функции отработали - переменные освобождаются и получается pointer(пальцем в небо). Или я неправ?


 
pasha_golub ©   (2004-02-20 17:30) [4]

miwa © (20.02.04 17:28) [3]
Нет, ты прав.


 
MBo ©   (2004-02-20 17:31) [5]

указатель, ассоциированный со строкой, принимает значение переданного Integer, создается копия. Так что ты неправ.


 
Тимохов ©   (2004-02-20 17:31) [6]

Ты задачу полнее определи.
Если ты туда засовываешь указатели на объекты, которые потом освобождаешь, то будет пальцем в небо. Если не хочешь в небо, то не освобождай объекты и все.


 
Guest   (2004-02-20 17:32) [7]

[3] miwa © (20.02.04 17:28)

showmessage(
inttostr(
longint(
StringList.Objects[0]
)
)
)


 
Guest   (2004-02-20 17:33) [8]

Кстати,
Pointer это не @ и не Addr


 
miwa ©   (2004-02-20 17:43) [9]


procedure TForm1.Button1Click(Sender: TObject);
begin
s:=TStringList.Create;
qqq;
showmessage(inttostr(longint(s.Objects[4])));
end;

procedure TForm1.qqq;
var i:integer;
begin
for i:=15 to 25 do
s.AddObject(inttostr(i),pointer(i));
end;

Получаю "19", так что я неправ.
Как все-таки хорошо, когда ты неправ. Ну, хоть иногда.о А теперь самый главный вопросс - А ПОЧЕМУ Я САМ ДО ЭТОГО НЕ ДОДУМАЛСЯ?

Спасибо всем.


 
Guest   (2004-02-20 17:50) [10]

[9] miwa © (20.02.04 17:43)

Наверное, потому что не знал, что переменная типа pointer хранит 4 байта, так же как и longint или integer.



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

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

Наверх




Память: 0.48 MB
Время: 0.02 c
3-5993
Ruslan
2004-02-05 09:21
2004.03.03
Проблема отображения русской кодировки


4-6278
Buffoon
2003-12-23 12:13
2004.03.03
Печать текста из StringGrid


3-5938
ivs13
2004-02-05 15:52
2004.03.03
Для Oracle есть Toad, а для - ???


14-6206
Serginio666
2004-02-11 16:11
2004.03.03
Очень хочется Delphi 8


1-6096
Гиричев Руслан
2004-02-18 23:36
2004.03.03
Как на ProgressBar вывести процесс загрузки формы?