Форум: "Основная";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];
ВнизКак в 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c