Вывод текста через API

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

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

скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

ctm писал(а):менял я инкремент до следующего пикселя (4 вместо 3)

да. это исключительно моя ошибка. Даже для rgb изображений (без alpha канала), количество бит может быть 32, всё зависит от платформенной реализации.
Инкремент должен выглядеть так:

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

var
  bpp: Integer; // bytes per pixel
...
  bpp:=fBackBuf.RawImage.Description.BitsPerPixel div 8;
...
  inc(j,bpp);


ctm писал(а):и пришлось указать честный rect для текста - а то не выводил.

хм...
ctm
новенький
Сообщения: 21
Зарегистрирован: 03.03.2010 15:34:29

Сообщение ctm »

ну вот:
ExtTextOut(fBackBuf.Canvas.Handle, 0, 0, ETO_CLIPPED,
nil, // в QT если тут передать nil, то текст не выводится. нужно обязательно передать валидный PRect
PChar(fSomeText), length(fSomeText), nil);
Ответить