powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Указать на TStringList.Object[] как?
25 сообщений из 64, страница 2 из 3
Указать на TStringList.Object[] как?
    #40027885
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ

Что это должно означать? Ну, какое действие должно выполняться, в чем отличие
Код: pascal
1.
list2.objects[j] := @list1.objects[i];


от
Код: pascal
1.
list2.objects[j] := list1.objects[i];



?


после list2.objects[j] := list1.objects[i];

попробуйте list1.objects[i] := nil сделать (объект уничтожен), а потом проверить Assigned(list2.objects[j]) и узнаете
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027890
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
wolverin
ъъъъъ

Что это должно означать? Ну, какое действие должно выполняться, в чем отличие
Код: pascal
1.
list2.objects[j] := @list1.objects[i];



от
Код: pascal
1.
list2.objects[j] := list1.objects[i];




?


после list2.objects[j] := list1.objects[i];

попробуйте list1.objects[i] := nil сделать (объект уничтожен), а потом проверить Assigned(list2.objects[j]) и узнаете


если ты присваиваешь NIL, то никакой объект не уничтожается
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027893
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

да это детали, пусть будет Free сначала иль деструктор, а потом nil

можно даже не мудрить с list2, просто уничтожить O

nil мне нужен для проверки существования объекта в TStringList.Object[]
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027899
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wolverin
defecator,

да это детали, пусть будет Free сначала иль деструктор, а потом nil

можно даже не мудрить с list2, просто уничтожить O

nil мне нужен для проверки существования объекта в TStringList.Object[]

Короче, афтору - букварики читать.
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027901
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

вы не понимаете, а мне читать ))
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027902
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wolverin
ъъъъъ,

вы не понимаете, а мне читать ))


Не хочешь, чтобы тебя понимали - не читай.
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027906
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вспоминается этот топик, после которого "указатель на ссылку на объект в TStringList.Object[]" уже не удивляют
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027907
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

да куда уж проще объяснил, бывает и тройной указатель нужен, когда нужно описать что то 3х мерное.
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027909
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr,

)) бида пичаль, теперь в этой теме на 4 страницы холивала похоже будет
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027910
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr,

да и в чем собсна удивление в вопросе? TStringList.Object[] это элементарный TStringItemList = array[0..MaxListSize] of TStringItem, что и имел очевидно ввиду SOFT FOR YOU, получать указатели на элементы которого уже можно без проблем.
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027911
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaBr
Вспоминается этот топик, после которого "указатель на ссылку на объект в TStringList.Object[]" уже не удивляют

Просмотрел... фу... зря я сюда влез, тут дохтур нужон...
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027912
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

точно, тем более что вместо совета тупили страницу )))
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027916
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolverin
DimaBr,
да и в чем собсна удивление в вопросе?

У меня удивления нет, я ответ уже дал, причём два. Один во втором сообщении, дугой выше.
Вот вам третий ответ. Вам сюда .
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027919
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr

У меня удивления нет, я ответ уже дал, причём два. Один во втором сообщении, дугой выше.
Вот вам третий ответ. Вам сюда .

что то со счетом у вас плохо только, совет один, выше ничего нет, "третий" ссылка по которой и переходить смысла нет
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027920
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бывают же какие обидчивые )) я даже ник его не запомнил, а он помнит что потратил много сил на бесполезные советы, потому что я плохо сформулировал вопрос )) ужсбл ))
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027921
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolverin
"третий" ссылка по которой и переходить смысла нет

Советую перейти и прочитать полостью. Там написано про вас.
Вы пытаетесь решить задачу X, при этом формулируете Y. "У всех Понимающих людей вопрос "как сделать Y?" вызывает недоумение: зачем это нужно? Это же бессмысленно."
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027922
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr,

"у всех" в данном случае 1 человек, помимо счета тут опять вопрос вашего непонимания возникает, оттого и смысла читать глубокие философские рассуждения никакого нет.
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027925
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не вижу смысла отвечать автору, который пытается изобрести пятиколесный велосипед (с колесами в разные стороны), и который при этом яростно игнорирует советы взять в гараже готовый нормальный двухколесный велосипед.

"Я ХОЧУ ТАК, ПОЧЕМУ ВЫ НЕ ХОТИТЕ МНЕ ПОМОЧЬ?", и бесполезно обьяснять. Пофлудить разве что, счетчик постов накрутить чутка))
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027926
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vizit0r,

)) вот чо к чему, какой велосипед, уже даже давно все переделано, хотя Бох с ним, флудите, будет что DimaBr в следующий раз запостить.
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027934
Zelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolverin,

забудь про указатель на указатель. при добавлении новых записей внутренний массив будет ролоцирован и все указатели полетят на юг.
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027935
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zelius,

новых записей нет, список1 строками инициализируется при старте приложения, появляются и освобождаются только объекты в нем.
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027938
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wolverin
Zelius,

новых записей нет, список1 строками инициализируется при старте приложения, появляются и освобождаются только объекты в нем.

ОК, содержимое контейнера не меняется. Так зачем тебе указатель на его внутреннюю прайвед структуру?
Чем плох указатель на сам контейнер?
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027944
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

список2 содержит множество объектов и их дубликатов списка1, работа выполняется одновременно как со списком1 так и со списком2 в разных кусках кода, объекты в списке1 могут быть, а может и нет, при этом список2 всегда знает об этом

извините, но уже не знаю как объяснить!!!

Сейчас я сделал в списке2 объекты не объектами списка1, а объектами с Index списка1 (по совету DimaBr), выглядит рабоче, просто строка обращения к объекту длинная и все, в типизированном указателе это было бы намного короче.

В чем вопрос то ваш???
Почему мне нужны именно объекты? Потому что они полностью с атрибутами и методами описывают предметную область для строки списка1/2
Почему не создать новые объекты для списка2? Потому что объекты привязаны к физическому оборудованию, их нельзя создать больше чем железок!

Ничего больше не нужно мне, спасибо! так сойдет!!!
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027951
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolverin
Что то туплю, как взять указатель на ссылку на объект в TStringList.Object[]
так не катит @(TStringList.Objects[i]), ошибка variable required

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils, System.Classes, System.Rtti;

begin

 var st := TStringList.Create;
 st.Add('hello');
 st.Objects[0] := TInterfacedObject.Create;

 var ListFieldOffset := TRttiContext.Create.GetType(TStringList).GetField('FList').Offset;

 writeLn(PStringItemList(NativeInt(st) + ListFieldOffset)^[0].FString);
 writeLn(PStringItemList(NativeInt(st) + ListFieldOffset)^[0].FObject.QualifiedClassName);
 writeLn('address of [0]: ', IntToHex(NativeInt(@PStringItemList(NativeInt(st) + ListFieldOffset)^[0].FObject), 0));
 readln;

end.
...
Рейтинг: 0 / 0
Указать на TStringList.Object[] как?
    #40027960
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

спасибо!!! в целом уже понял, что надо обращаться через PStringItemList

...вообще где то я уже похоже делал, когда нужно было получить доступ к одноименным свойствам всех объектов с непересекающейся иерархией классов
...
Рейтинг: 0 / 0
25 сообщений из 64, страница 2 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Указать на TStringList.Object[] как?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]