Delphi 如何将光标类型更改为类似Excel网格光标?
如何将Delphi 如何将光标类型更改为类似Excel网格光标?,delphi,Delphi,如何将TStringGrid中的光标类型更改为类似于Excel网格光标 Excel游标不是delphi或system32中的游标类型 我在光标位于extres.res Screen.Cursors[crMaletUp] := LoadCursor(HInstance, 'Malet'); Screen.Cursors[crMaletDown] := LoadCursor(HInstance, 'MaletDown'); Screen.Cursor := TCursor(crMaletUp);
TStringGrid
中的光标类型更改为类似于Excel网格光标
Excel游标不是delphi或system32中的游标类型
我在光标位于extres.res
Screen.Cursors[crMaletUp] := LoadCursor(HInstance, 'Malet');
Screen.Cursors[crMaletDown] := LoadCursor(HInstance, 'MaletDown');
Screen.Cursor := TCursor(crMaletUp);
在另一方面,我使用其他代码,但在帮助,但它不工作
procedure TForm1.Button1Click(Sender: TObject);
begin
bmpMask := TBitmap.Create;
bmpColor := TBitmap.Create;
bmpMask.LoadFromFile('SquareMask.bmp');
bmpColor.LoadFromFile('Square.bmp');
with iconInfo do
begin
fIcon := false;
xHotspot := 15;
yHotspot := 15;
hbmMask := bmpMask.Handle;
hbmColor := bmpColor.Handle;
end;
Screen.Cursors[crMyCursor] := CreateIconIndirect(iconInfo);
Screen.Cursor := crMyCursor;
bmpMask.Free;
bmpColor.Free;
end;
我想我会回答这个问题,因为没有人会回答 我有一个函数可以修复Delphi的一些内置游标(使用标准Windows游标)。但我也用它来添加一些新的自定义游标。我将精简我的函数,只添加两个新的游标:
:(颜色选择器光标)crcolorpocker
:(Excel十字光标)crExcelCross
ExcelCross.cur
:
现在创建一个新的资源脚本文件,wumpa.rc,我将在其中指定两个光标文件:
wumpa.rc
ColorPicker CURSOR "ColorPicker.cur"
ExcelCross CURSOR "ExcelCross.cur"
并使用project->添加到project将wumpa.rc
文件添加到我的项目中
现在我声明两个全局常量来表示我的新游标。像crHourGlass
或crNo
,我们现在将有crColorPicker
和crExcelCross
:
const
{Cursor Constants}
crColorPicker = 1003;
crExcelCross = 1004;
procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Cursor := crExcelCross;
end;
现在我们必须在运行时加载这两个CURSOR
资源:
procedure LoadNewCursors;
var
i: Integer;
cursorHandle: HCURSOR;
begin
//Load ColorPicker cursor
cursorHandle := LoadCursor(hInstance, 'ColorPicker');
if CursorHandle <> 0 then
Screen.Cursors[crColorPicker] := cursorHandle
else
Screen.Cursors[crColorPicker] := Screen.Cursors[crNone];
//Load Excel Cross cursor
cursorHandle := LoadCursor(hInstance, 'ExcelCross');
if CursorHandle <> 0 then
Screen.Cursors[crExcelCross] := cursorHandle
else
Screen.Cursors[crExcelCross] := Screen.Cursors[crNone];
end;
initialization
LoadNewCursors;
ba zinga,你有一个Excel十字光标:
注意:任何代码都会发布到公共域中。无需归因
你能链接一个光标的图像吗?做一个光标的截图,然后把图像贴在这里,这样我们就可以看到你想要什么样的光标。进行一些错误检查怎么样?
CreateIconIndirect
返回什么?无论如何,获取光标文件、将其编译为资源并链接到该资源要容易得多。我已投票决定关闭此功能。这不是一个真正的问题。该问题包含两个如何分配自定义游标的示例。此外,正如Arioch指出的,定制游标甚至不是必需的,因为Delphi已经完全支持这里请求的游标。还有什么要问的?充其量,这是一个如何调试的问题,这个问题太广泛了,无法在堆栈溢出时处理。