Перейти к содержанию
Fire Monkey от А до Я
  • 0

[TGrid] Не могу загрузить jpg из ресурсов в TImageColumn


anst

Вопрос

XE7 для андроид 4.4.4

 

Есть TGrid

создаю TImageColumn и не могу загрузить jpg.

test.jpg прописан в deployment  -> android -> .\assets\

var
  vloTCol  : TImageColumn;
begin
  vloTCol  := TImageColumn.Create(Grid1);

А дальше что?

Что-то мне кажется не там копаю.

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
  • Администраторы

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; 
Ссылка на комментарий
  • 0

Не понял.

OnGetValue срабатывает при получении из ячейки значения.

А я хочу дорисовать столбец с картинками.

Т.е. селект из БД сделал, grid отрисовал, и добавляю столбец с картинками.

Ссылка на комментарий
  • 0
  • Администраторы

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

И я не понял, что вы не поняли из того, что я написал.

Ссылка на комментарий
  • 0

Есть Grid связан с БД SQLite через UniQuery

  1. В UniQuery делаю запрос "select * From my_table"
  2. В Grid выводится два стобца. Нужен еще один столбец с картинками.
  3. После селекта т.е после UniQuery.Open;
    Создаю:
    var
      vloTCol  : TImageColumn;
    begin
      vloTCol  := TImageColumn.Create(Grid1);
      vloTCol.Width := 60;
      Grid1.AddObject(vloTCol);
    end;

    Столбец создается.

Вот эти ячейки этого стобца нужно загрузить картинки.

 

Событие OnGetValue не отрабатывается.

Изменено пользователем Brovin Yaroslav
Ссылка на комментарий
  • 0
  • Администраторы

Вы не правильно создаете столбец. Так как для столбца нужно обязательно указать родителя:

vloTCol.Parent := Grid1;

Без этого, ваш столбец  не прикрепляется к гриду.

Ссылка на комментарий

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...