powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Имя поля записи в объект списка :)
8 сообщений из 8, страница 1 из 1
Имя поля записи в объект списка :)
    #39961245
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получаю имена полей записи rPosition = record и хочу их как-то запихнуть в объекты списка. В виде строк никак низя, но можно как-то в виде указателей

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
var
  rttiContext: TRttiContext;
  fld: TRttiField;
begin
  lstFields.Clear;

  for fld in rttiContext.GetType(TypeInfo(rPosition)).GetFields do
    lstFields.AddItem(fld.Name, @fld);
end;



Теперь по дабл клику хочу прочесть имя и тут не могу разобраться

Код: pascal
1.
2.
3.
4.
5.
procedure TForm1.lstFieldsDblClick(Sender: TObject);
var fld: TRttiField;
begin
  fld := lstFields.Items.Objects[lstFields.ItemIndex];  // так естественно не работает :) Но как-то же можно обратиться?
end;
...
Рейтинг: 0 / 0
Имя поля записи в объект списка :)
    #39961246
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:) Заработался

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
var
  rttiContext: TRttiContext;
  fld: TRttiField;
begin
  lstFields.Clear;

  for fld in rttiContext.GetType(TypeInfo(rPosition)).GetFields do
    lstFields.AddItem(fld.Name, fld);
end;



Все просто:

Код: pascal
1.
2.
3.
4.
5.
6.
procedure TForm1.lstFieldsDblClick(Sender: TObject);
var fld: TRttiField;
begin
  fld := TRttiField(lstFields.Items.Objects[lstFields.ItemIndex]);
  ShowMessage(fld.Name);
end;
...
Рейтинг: 0 / 0
Имя поля записи в объект списка :)
    #39961247
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если при этом
Код: pascal
1.
lstFields.AddItem(fld.Name, fld);

сохраняется указатель, то как тогда хранится сам объект?
...
Рейтинг: 0 / 0
Имя поля записи в объект списка :)
    #39961264
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antox,

В Delphi нет статических объектов, это всегда указатель.
...
Рейтинг: 0 / 0
Имя поля записи в объект списка :)
    #39961293
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antox

Все просто:

Серьёзно?..
Код: pascal
1.
2.
3.
4.
5.
procedure TForm1.lstFieldsDblClick(Sender: TObject);
begin
//  lstFields.AddItem(fld.Name, fld);
  ShowMessage(lstFields.Items[lstFields.ItemIndex]);
end;
...
Рейтинг: 0 / 0
Имя поля записи в объект списка :)
    #39961344
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp
antox

Все просто:

Серьёзно?..
Код: pascal
1.
2.
3.
4.
5.
procedure TForm1.lstFieldsDblClick(Sender: TObject);
begin
//  lstFields.AddItem(fld.Name, fld);
  ShowMessage(lstFields.Items[lstFields.ItemIndex]);
end;



Не серьезно :)

Но

Код: pascal
1.
ShowMessage(lstFields.Items[lstFields.ItemIndex]);

тоже не пойдет, т.к. мне не надо запись из листа
...
Рейтинг: 0 / 0
Имя поля записи в объект списка :)
    #39961347
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше начать заново:

Нужен список checkbox+имена полей записи+их описание.

Пользователь видит список с checkbox-ами и описаниями, а имена полей записи не видит.

Мне необходимо, что бы он отметил галками, что ему нужно, исходя из видимых описаний, а программа могла понять, какие поля записи отмечены.

Описания связанные с именами полей планирую хранить в словаре и заполнять список на этапе отображения, поэтому пробегать можно и по словарю (хотя у него нет порядка, насколько я знаю)
...
Рейтинг: 0 / 0
Имя поля записи в объект списка :)
    #39961353
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, сделал через TListView
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Имя поля записи в объект списка :)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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