@sim-dev

Как нарисовать на курсоре в RunTime?

Проблема следующая: я создал ресурс с цветным курсором (32 бит), собрал проект - все отлично, курсор грузится и отображается.
Теперь я хочу перед тем, как этот курсор "включить", модифицировать его внешний вид.
Я загружаю ресурс и пытаюсь на его Canvas рисовать. Однако, любые мои "рисования" делают исходное изображение прозрачным, что бы я ни делал.
Пример, как я делаю.
Cur := TCursorImage.Create;
  Cur.LoadFromResourceID(HINSTANCE, CurId);
  with Cur.Canvas do begin
    Brush.Style := bsSolid;
    Brush.Color := clBlue;
    FillRect(10,10,21,21);
  end;
  Screen.Cursors[CurId] := Cur.ReleaseHandle;
  Cur.Free;

Вот какой курсор при этом получается
5a9d90722dec8153990430.png
Красный кружок - это фон, над которым движется курсор "заливки".
Пишу я на FPC, но это не принципиально: мне требуется совет, как вообще это сделать?
  • Вопрос задан
  • 149 просмотров
Пригласить эксперта
Ответы на вопрос 2
Обычно делаются несколько разлчных курсоров в редакторе, а потом подгружается нужный во время выполнения программы.
Ответ написан
@Mercury13
Программист на «си с крестами» и не только
Попробуйте Brush.Color := $FF000000 or clBlue;. Велика вероятность, что механизмы работы с 32-битными изображениями тут слабоваты.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы