TTeeGrid не отображает данные во время выполнения, используя данные из REST

Я создал простой RME для TTeeGrid, возможно потомка TGrid в Firemonkey. Как показано ниже, данные отображаются во время разработки, но не во время выполнения, за исключением заголовков.

введите здесь описание изображения

Я ломаю голову над этим уже несколько недель, но не повезло.

Дайте мне знать, если вам нужна дополнительная информация, но то, что вы видите на изображении, это все, что вы получаете.

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

ОБНОВЛЕНИЕ 1

Эта проблема не относится к TPrototypeBindSource. Данные, отображаемые во время разработки, отображаются во время выполнения. Что-то где-то не так.


person RickyBelmont    schedule 15.07.2020    source источник
comment
Если это потомок TGrid, попробуйте создать для него пару столбцов, добавьте TPrototypeBindSource, добавьте к нему пару FieldDef, затем щелкните правой кнопкой мыши сетку и выберите LiveBindings Wizard. Если вы примете действие по умолчанию и нажмете «Готово», мастер должен заполнить сетку. После этого вы можете заменить TPrototypeBindSource на DataSource, ссылающийся на данные, которые вы действительно хотите использовать.   -  person MartynA    schedule 16.07.2020
comment
Спасибо @MartynA. Как и предполагалось, я попробовал TPrototypeBindSource, и он работает! Однако с источником данных Rest я удивлен, почему он не работает. Кстати, здесь я должен сообщить, что поля динамические, они могут увеличиваться в зависимости от случая пользователя. Но это не моя проблема сейчас. Это данные, которые не отображаются с использованием компонентов Rest.   -  person RickyBelmont    schedule 16.07.2020


Ответы (1)


Я никогда раньше не использовал TeeGrid, но в Delphi Tokyo у меня впервые сработало следующее:

  1. Загрузите пробную версию TeeGrid со Steema.Com и установите.

  2. Создайте новое приложение для нескольких устройств и поместите в форму TeeGrid и FDMemTable.

  3. Загрузите FDMemTable1 с файлом Parts.Fds из каталога данных образцов Delphi. Обратите внимание, что я не создавал никаких FieldDefs, как упоминал в своем комментарии ранее, поскольку то, что я описываю, работает без них.

  4. Задайте для свойства DataSource элемента TeeGrid1 значение FDMemTable1. TeeGrid1 сразу же создает столбцы для каждого из полей Parts и заполняет их данными — см. снимок экрана ниже. Обычно я не включаю скриншоты, но в этом случае подумал, что сделаю это, потому что то, что я получил, явно расходится с тем, что вы сообщили.

Ваш TeeGrid и т. д. явно сложнее моего. поэтому лучшее, что я могу предложить, это вернуться к шагу 2 и посмотреть, сможете ли вы воспроизвести мой результат с вашими данными (либо во время разработки, либо во время выполнения). Возможно, стоит загрузить в FDMemTable некоторые данные во время разработки, так как у меня сложилось впечатление, что живые привязки менее подвержены проблемам, когда в источнике данных есть некоторые данные.

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

введите здесь описание изображения

person MartynA    schedule 16.07.2020
comment
Спасибо за это, но, как упоминалось в моем комментарии ранее, использование образцов данных работает отлично. Что касается LB, я не уверен, что мне это нужно, потому что числовые столбцы могут увеличиваться или могут быть определены только во время выполнения. Установка свойства источника данных TeeGrid на FDMemtable может быть мне полезна из-за набора данных динамических столбцов. Моя единственная проблема заключается в том, что во время выполнения он не отображает данные в TeeGrid. - person RickyBelmont; 16.07.2020
comment
С другой стороны, чтобы проверить, не вызывает ли проблема компонент TTeeGrid. Я попробовал TGrid Firemonkey, используя LB, и у меня возникла та же проблема. Данные отображаются во время разработки, но не во время выполнения. - person RickyBelmont; 16.07.2020
comment
Та же проблема с TStringGrid. Я предположил, что должно быть что-то, что я должен делать с FDMemtable во время выполнения. Уже пробовал teegrid.enable:=true и fdmemtable.active:=true при создании формы, но не повезло. - person RickyBelmont; 16.07.2020
comment
В конце концов! Я понял! Это RestRequest, который я должен выполнить во время выполнения, чтобы иметь возможность отображать данные. Я пропустил это, потому что я уже выполнил данные во время разработки. Не понял, что мне все еще нужно повторно выполнить во время выполнения. О Боже мой! Мне потребовалось время, чтобы понять это! В любом случае, большое спасибо за помощь. Я правда ценю это. - person RickyBelmont; 16.07.2020
comment
Рад, что ты наконец добрался до сути. В любом случае, было бы хорошо, если бы вы приняли этот ответ, поскольку он, по крайней мере, устранил живую привязку FDMemTable к TeeGrid как причину проблемы. - person MartynA; 16.07.2020