anst Опубликовано 4 декабря, 2014 Поделиться Опубликовано 4 декабря, 2014 XE7 для андроид 4.4.4 Есть TGrid создаю TImageColumn и не могу загрузить jpg. test.jpg прописан в deployment -> android -> .\assets\ var vloTCol : TImageColumn; begin vloTCol := TImageColumn.Create(Grid1); А дальше что? Что-то мне кажется не там копаю. Цитата Ссылка на комментарий
0 Администраторы Brovin Yaroslav Опубликовано 5 декабря, 2014 Администраторы Поделиться Опубликовано 5 декабря, 2014 TGrid не хранит значения в отличии от TStringGrid. Поэтому TGrid запрашивает данные в тот момент, когда они необходимы для отображения ячейки через событие: TGrid.OnGetValue. В качестве параметров передается запрашиваемые данные для строки Row и столбца Col, а так же непосредственно параметр для передачи самого значения Value. Поэтому, чтобы вам задать значение для любого столбца, вам нужно написать обработчик для события OnGetValue. И в Value поместить значение. Например, чтобы для столбца типа TImageColumn присвоить значение нужно написать следующий код: procedure TForm4.Grid1GetValue(Sender: TObject; const Col, Row: Integer; var Value: TValue); var Bitmap: TBitmap; begin // загружаем любое изображение Bitmap := TBitmap.CreateFromFile('image.png'); // Конвертируем изображение в универсальный тип TValue из RTTI Value := TValue.From<TBitmap>(Bitmap); end; Kitty 1 Цитата Ссылка на комментарий
0 anst Опубликовано 8 декабря, 2014 Автор Поделиться Опубликовано 8 декабря, 2014 Не понял. OnGetValue срабатывает при получении из ячейки значения. А я хочу дорисовать столбец с картинками. Т.е. селект из БД сделал, grid отрисовал, и добавляю столбец с картинками. Цитата Ссылка на комментарий
0 Администраторы Brovin Yaroslav Опубликовано 8 декабря, 2014 Администраторы Поделиться Опубликовано 8 декабря, 2014 Детальнее излагайте ваши мысли. Так как я на ваш скудный на детали вопрос, ответил больше, чем нужно. И я не понял, что вы не поняли из того, что я написал. Цитата Ссылка на комментарий
0 anst Опубликовано 8 декабря, 2014 Автор Поделиться Опубликовано 8 декабря, 2014 (изменено) Есть Grid связан с БД SQLite через UniQuery В UniQuery делаю запрос "select * From my_table" В Grid выводится два стобца. Нужен еще один столбец с картинками. После селекта т.е после UniQuery.Open; Создаю: var vloTCol : TImageColumn; begin vloTCol := TImageColumn.Create(Grid1); vloTCol.Width := 60; Grid1.AddObject(vloTCol); end; Столбец создается. Вот эти ячейки этого стобца нужно загрузить картинки. Событие OnGetValue не отрабатывается. Изменено 8 декабря, 2014 пользователем Brovin Yaroslav Цитата Ссылка на комментарий
0 Администраторы Brovin Yaroslav Опубликовано 8 декабря, 2014 Администраторы Поделиться Опубликовано 8 декабря, 2014 Вы не правильно создаете столбец. Так как для столбца нужно обязательно указать родителя: vloTCol.Parent := Grid1; Без этого, ваш столбец не прикрепляется к гриду. Kitty 1 Цитата Ссылка на комментарий
0 anst Опубликовано 9 декабря, 2014 Автор Поделиться Опубликовано 9 декабря, 2014 Понял. Спасибо. Исправлю. А как загрузить картинки в ячейки столбца? Цитата Ссылка на комментарий
0 Администраторы Brovin Yaroslav Опубликовано 9 декабря, 2014 Администраторы Поделиться Опубликовано 9 декабря, 2014 Не за что. Перечитайте еще раз http://fire-monkey.ru/topic/777-tgrid-timagecolumn-ne-mogu-zagruzit-jpg-iz-resursov/?p=3234 Цитата Ссылка на комментарий
0 anst Опубликовано 10 декабря, 2014 Автор Поделиться Опубликовано 10 декабря, 2014 В том то и дело что событие OnGetValue НЕпроисходит. Test_Grid4.zip Цитата Ссылка на комментарий
Вопрос
anst
XE7 для андроид 4.4.4
Есть TGrid
создаю TImageColumn и не могу загрузить jpg.
test.jpg прописан в deployment -> android -> .\assets\
А дальше что?
Что-то мне кажется не там копаю.
Ссылка на комментарий
8 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.