Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Имя поля записи в объект списка :) / 8 сообщений из 8, страница 1 из 1
24.05.2020, 08:28
    #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
24.05.2020, 08:32
    #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
24.05.2020, 08:53
    #39961247
antox
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя поля записи в объект списка :)
Если при этом
Код: pascal
1.
lstFields.AddItem(fld.Name, fld);

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

В Delphi нет статических объектов, это всегда указатель.
...
Рейтинг: 0 / 0
24.05.2020, 12:03
    #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
24.05.2020, 15:22
    #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
24.05.2020, 15:30
    #39961347
antox
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя поля записи в объект списка :)
Лучше начать заново:

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

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

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

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


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