Windows Як завантажити HBITMAP в TBitmap Імпорт - Fire Monkey від А до Я
Добридень! Вирішив покопатися у своїй старій спрайтовій іграшці, щоб освіжити в пам'яті знання і приготувати щось нове. Виникли сумніви, чи нормально зроблено графічне відображення, чи можна доопрацювати. Всі спрайти в дизайн таймі розіпхані по Timagelist-ам. На старті програми я завантажую бітмапи з імеджлістів у свої обджектлісти, підганяючи під потрібний розмір. MeduzasBitmpAr : array [1..numofMeduzas] of TObjectList ; Далі малюю по таймеру в основному вікні гри Tpaintbox.OnPaint:
Пишу кросплатформовий додаток. Результат пошуку відображається у TGrid. Постало питання відображення картинки в одній із колонок. На Windows все ок, але на планшеті відбуваються просто дива: при першому відображення все коректно, але якщо простоколити вгору-вниз як картинки одні перетираються іншими, частина взагалі відображається ногами. Код для збереження картинки(jpg) до бази: if Assigned(sm) then begin sm.Position := 0; //TBlobField(dmData.cdsPlayerData.FieldByName('Photo')).LoadFromStream(sm); vImage := TImage.Create(nil); try sm.Position := 0; vImage.Bitmap.LoadFromStream(sm); vKoef := vImage.Bitmap.Height / 64; vImage.Bitmap.Resize(Trunc(vImage.Bitmap.W )).LoadFromStream(sm); finally sm.Free; end; finally vImage.Free; end; end; До скрола:
Пробував і LiveBinding, і ручне промальовування - результат той самий. Є ідеї, що не так? P.S. Знаю що потрібно робити через TListView, але замовник хоче «сіточку як у старій програмі», тому що на Android буде працювати тільки на планшетах – я погодився.

Вітаю! Стає завдання завантажувати фотографії та відображати їх у списку. Здавалося б, як два пальці, але. Код працював довгий час, все вантажилося і відображалося. Через якийсь час фото вантажитися перестали. Дебаггінгвиявив замкнений нескінченний цикл у цій процедурі: procedure TBitmap.AssignFromSurface(const Source: TBitmapSurface); var BitmapData: TBitmapData; MaxSize: Integer; ResampledSurface: TBitmapSurface; I: Integer; SourceRect: TRectF; begin MaxSize := Canvas > MaxSize) або (Source.Height & Max; MaxSize) then begin SourceRect := TRectF.Create(0, 0, Source.W > AssignFromSurface(ResampledSurface);
Хтось стикався? Чи є думки як лікувати? Всім дякую!
Добридень. Існує одна проблема, з якою вже кілька тижнів не можу впоратися. Є старий код під WinAPI, його потрібно переробити під Android через firemonkey. І головна проблема – є код, який із власного формату робить HBITMAP із WinAPI. Фактично це структура, де останнє поле – вказівники на біти. Це легко переробити, створивши власну копію такої структури. Але тепер мені потрібно перевести її в TBitmap, і я не дуже розумію, як це зробити.
Останні відвідувачі 0 користувачів онлайн
Жодного зареєстрованого користувача не переглядає цієї сторінки