Перейти к содержанию
  • Регистрация

Vizit0r

Пользователи
  • Публикаций

    8
  • Зарегистрирован

  • Посещение

Информация о Vizit0r

  • Звание
    Новичок

Посетители профиля

409 просмотров профиля
  1. действительно, ReadWrite не затирает. А я его банально не проверил Спасибо, помогло.
  2. Тестовый пример - вычитываю во временый битмап картинку из файла. Потом временный битмап рисую на полотне битмапа от Image1. Потом еще рисую на полотне, например эллипс. На этом этапе все хорошо. А дальше достаточно сделать Image1.Bitmap.Map - Unmap, и все, изображение пустое. Если писать через BitmapData напрямую в пикселы - оно показывается на экране. При этом каким-то странным образом эффект стирания битмапа убирается путем вызова Image1.Bitmap.SaveToFile перед вызовом Map-Unmap, Исходники пытался читать, причины не нашел. Кто в курсе, подскажите - что я делаю не так? P.S. Если читать из файла напрямую в Image1.Bitmap - то при Map-Unmap затираются только изменения полотна, а загруженный рисунок остается. Явно какие-то недокументированные особенности вызова Map-Unmap.. P.P.S. Зло где-то в районе вызова if H.FAccess in [TMapAccess.ReadWrite, TMapAccess.Write] then SharedDevice.CopyResource(H.Texture, H.FMapBuffer); при Unmap. Осталось придумать, как это побороть и совместить рисование на полотне с прямым доступом к пикселам. procedure TForm2.Button1Click(Sender: TObject); var Bmp1 : Tbitmap; BitmapData : TBitmapData; begin Bmp1 := Tbitmap.Create; Bmp1.CreateFromFile('c:\123.bmp'); Image1.Bitmap.Width := Bmp1.Width; Image1.Bitmap.Height := Bmp1.Height; Image1.Bitmap.Canvas.BeginScene; Image1.Bitmap.Canvas.DrawBitmap(Bmp1,TRectF.Create(0,0,Bmp1.Width,Bmp1.Height), TRectF.Create(0,0,Image1.Bitmap.Width,Image1.Bitmap.Height), 1); Image1.Bitmap.Canvas.Stroke.Color := TAlphaColorRec.Red; Image1.Bitmap.Canvas.DrawEllipse(TRectF.Create(10, 10, 20,20), 1); Image1.Bitmap.Canvas.EndScene; // Image1.Bitmap.SaveToFile('c:\0001.bmp'); //если это закомментировать, то //при вызове Map-Unmap в Image будет пусто Image1.Bitmap.Map(TMapAccess.Write,BitmapData); // здесь была работа с пикселами напрямую - замена цветов в нескольких точках. Image1.Bitmap.Unmap(BitmapData); Bmp1.Free; // BMPTest(Image1.Bitmap); end;
  3. вот это не понял, но скинуть всё на Layout помогло. Спасибо.
  4. Добрый вечер. есть MultiView. есть TabControl с Align = Client. есть Panel с Align = Bottom, растянута на часть экрана, где-то треть. При этом MultiView при показе (когда выезжает слева) - отображается только на той части экрана, где TabControl, и не показывается на части, занятой Panel. В какую сторону стоит копать, чтобы добиться сдвигания этой нижней панели при выезде MultiView? Менять Align у нижней панели нельзя, иначе вся структура окна уплывет.
  5. а ты умеешь аргументировать свою точку зрения.
  6. да легко комментарии и мысли по теме - внутри исходника. P := BitmapData.GetScanline(Y); - это VCL? Битмап вычитывается из файла, попутно преобразовывается из 15б формата в 32, но это отношения к теме не имеет. Project2.rar
  7. Delphi Seattle, Android 5.0.1 Формирую картинку через ScanLine. На выходе полученный битмап рисуется на полотне TImage, на котором перед этим был нарисован Rect. GlobalBitmap - формированный tbitmap. with ObjectPreviewImage.Bitmap.Canvas do begin BeginScene; Clear(TAlphaColorRec.White); DRect := TRectF.Create(0, 0, GlobalBitmap.Width + 8, GlobalBitmap.Height + 8); DrawRect(DRect, 0, 0, AllCorners, StealthForm.ObjectPreviewImage.AbsoluteOpacity); DRect := TRectF.Create(0, 0, GlobalBitmap.Width, GlobalBitmap.Height); DrawBitmap(GlobalBitmap,DRect, TRectF.Create(2, 2, GlobalBitmap.Width + 2, GlobalBitmap.Height + 2), 1); EndScene; end; Проблема собственно в чем - в андроидной версии слева и внизу рамка "съедается". В Win32 версии все отлично. На прилагаемых скриншотах это четко видно. Документацию читал, гугл гуглил. Что я делаю не так? Или это неизвестные подводные камни андроидного рисования на полотне? P.S. Картинка одинаковая, цвет к определенной области применяется не верно. Походу тоже андроидные приколы. Но с этим я уже разберусь. P.P.S. Уже разобрался с цветом - под андроидом Blue и Red в пикселе надо поменять местами. А насчет канвы - не получается никак. P
  8. лови P.S. Спасибо братьям-китайцам 10_Seattle_Update_1_ModernTheme_Hotfix.zip
×
×
  • Создать...