1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64:
| bmpMask := TBitmap.Create; bmpColor := TBitmap.Create; try With bmpColor do begin Width := 8; Height := Round5(dFontBaseline); Canvas.Brush.Color := clBlack; Canvas.FillRect(RECT(0,0,Width,Height)); Canvas.Pen.Color := clBlack; Canvas.MoveTo(4,1); Canvas.LineTo(4, Height - 2); Canvas.MoveTo(1,0); Canvas.LineTo(3,0); Canvas.MoveTo(5,0); Canvas.LineTo(7,0); Canvas.MoveTo(1,Height - 1); Canvas.LineTo(3,Height - 1); Canvas.MoveTo(5,Height - 1); Canvas.LineTo(7,Height - 1); end;
With bmpMask do begin Width := 8; Height := Round5(dFontBaseline); Monochrome := true; Canvas.Brush.Color := clWhite; Canvas.FillRect(RECT(0,0,Width,Height)); Canvas.Pen.Color := clBlack; Canvas.MoveTo(4,1); Canvas.LineTo(4,Height - 2); Canvas.MoveTo(1,0); Canvas.LineTo(3,0); Canvas.MoveTo(5,0); Canvas.LineTo(7,0); Canvas.MoveTo(1,Height - 1); Canvas.LineTo(3,Height - 1); Canvas.MoveTo(5,Height - 1); Canvas.LineTo(7,Height - 1); end;
with IconInfo do begin fIcon := False; xHotspot := 4; yHotspot := Round5(dFontBaseline) - 1; hbmMask := bmpMask.Handle; hbmColor := bmpColor.Handle; end;
lPictureDisp := nil; FCursorTextModePicture.Icon.Handle := CreateIconIndirect(iconInfo); GetOlePicture(FCursorTextModePicture, lPictureDisp);
FCursorTextMode := lPictureDisp as IPicture; finally bmpColor.Free; bmpMask.Free; end; |