ATImage

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
DedFrend
постоялец
Сообщения: 157
Зарегистрирован: 25.11.2018 11:21:50

ATImage

Сообщение DedFrend »

Кто-нибудь пользовал указанный компонент? Это отображение картинки на скроллбоксе + масштабирование. Я пользовал в Дельфи и там добился того, что мне надо. Чтобы использовать в Лазаре стянул с Гитхаба версию для Лазаря. Она дала кучу ошибок компиляции. В меру своего понимания попробовал исправить. Установилась, но работает непонятно. К тому же она сильно отличается от варианта для Дельфи.
Попробовал вариант, работавший в Дельфи конвертировать в Лазаря. Автоконвертация прошла успешно, в систему установилась, но при попытке добавить на форму с треском падает лазарь.
Может у кого есть рабочий вариант?
Alex2013
долгожитель
Сообщения: 3211
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

Не понял зачем вообще нужа такая еруда? Есть скроллбокс есть обычный TImage....
Изображение
iskander
энтузиаст
Сообщения: 627
Зарегистрирован: 08.01.2012 18:43:34

Сообщение iskander »

ATImageBox вот отсюда https://github.com/Alexey-T/ATImageBox-Lazarus компилируется без ошибок.
DedFrend
постоялец
Сообщения: 157
Зарегистрирован: 25.11.2018 11:21:50

Сообщение DedFrend »

Действительно, скачав по адресу данному Iskander все нормально скомпилилось. Моя ошибка была в том, что не будучи хорошо знаком с Git взял оттуда же, но в виде zip архива, а он, видимо, старый. Но то, что мне надо было, все равно не заработало. Почему-то событие MouseMove на картинке работать не хочет.
В общем, пока сделал просто, как советовал Alex2013 TScrollbox+TImage. Вроде заработало.
DedFrend
постоялец
Сообщения: 157
Зарегистрирован: 25.11.2018 11:21:50

Сообщение DedFrend »

Нет, не работает. То что работает в Delphi
PictureBMP.Assign(imgJPG.Picture.Graphic);
в лазаре не дает правильной TBitmap . Похоже, он оставляет фактически jpeg изображение (уж не знаю как ему удается при этом сохранять тип TBitmap). Проявляется это когда я пытаюсь рисовать на его канве. Если исходное изображение было TBitmap (из файла bmp), то все нормально рисует на канве, а если было jpg, то при рисовании на канве меняется цвет и толщина линий. Может кто-то сказать как все-таки из jpg получить "правильный" bmp ?
iskander
энтузиаст
Сообщения: 627
Зарегистрирован: 08.01.2012 18:43:34

Сообщение iskander »

А если так?

Код: Выделить всё

  PictureBMP.Bitmap.Assign(imgJPG.Picture.Graphic);
DedFrend
постоялец
Сообщения: 157
Зарегистрирован: 25.11.2018 11:21:50

Сообщение DedFrend »

iskander
Нет, к сожалению, не работает. Эффект тот же. что и PictureBMP.Assign(imgJPG.Picture.Graphic);

Пока то, что надо, удается получить через mgBMP.Canvas.Draw(0,0,imgJPG.Picture.Graphic);
Ответить