我下载了几个指针文件(50分)

  • 主题发起人 主题发起人 homerocker
  • 开始时间 开始时间
H

homerocker

Unregistered / Unconfirmed
GUEST, unregistred user!
我想把他使用到我的软件中去,但程序的cusor属性不让我使用自定义指针,请问我该怎么办
 
是鼠标指针文件吧?

  var tt:pchar;size:integer;
  begin
  size:=length(sFilename);
  getmem(tt,size);
  strpcopy(tt,sFileName);
  screen.cursors[2]:=loadcursorfromfile(tt);
  bf.cursor:=2;
  freemem(tt,size);
  end;
 
可以详细的解释一下用法吗,再加50分
 
说得简单些,就是使用loadcursorfromfile()函数就行了

例如 Screen.cursors[2] := loadcursorfromfile('c:/a.cur');
然后可以将cursor显示出来,如form1.cursor := screen.cursors[2];
 
设置彩色光标

在Delphi中用Loadcursor()得到的光标只有黑白两色,怎样在程序中得到彩色光标呢?

方法一:用Loadcursorfromfile()从外部调入图标作为光标Loadcursorfromfile()函数可以读 *.CUR,*.ICO,*.ANI为后缀的文件作为光标,其中ICO为彩色图标格式(可用Image Editor制作),ANI为动画光标格式。以下为打开一图标作为光标的演示程序段,当光标移动到测试区域(bf控件)内光标会变成选定的图案;

{设:opendialog1:Topendialog;Bitbtn1:Tbitbtn}
procedure TForm1.BitBtn1Click(Sender:TObject);
var tt:pchar;size:integer;s:string;
begin
if opendialog1.Execute then
begin
size:=length(opendialog1.filename);
getmem(tt,size);
s:=opendialog1.filename;
strpcopy(tt,s);
screen.cursors[2]:=loadcursorfromfile(tt);
bf.cursor:=2;
freemem(tt,size);
end;
end;

方法二:从资源文件加载彩色光标。用方法一发送程序时必须包含*.CUR文件,因而从资源文件中加载彩色光标是更可行的方法。用图标存放彩色光标,使用时把图标存入临时文件,用Loadcursorfromfile()从临时文件读出彩色光标。

程序段:
procedure ZloadfromResourse(screenindex:integer;name:Pchar);
var td:ticon;
begin
try
td:=ticon.Create;
td.Handle:=LoadIcon(Hinstance,name);
td.SaveToFile(′temp.cur′);
screen.Cursors[screenindex]:=
loadcursorfromfile(′temp.cur′);
deletefile(′temp.cur′);
finally
td.free;
end;
end;

此程序把名字为name的图标变为序号为screenindex的光标;

例:
ZloadfromResourse(2,′myicon′);
Form1.cursor:=2;

注意:'myicon'这个图标一定要在资源文件中,否则会出现异常。提供32X32彩色图标,绘多大显示多大
 
5.3.5自定义鼠标
在一些情况下需要定义特殊形状的鼠标,这在Delphi中实现起来非常方便。
例程S5_6该例程对自定义鼠标进行了说明。
1.创建资源文件
1)在Delphi集成开发环境中通过菜单Tools|ImageEditor运行工具软件ImageEditor。
2)在ImageEditor中,通过菜单File|New...|ResourceFile(.res)将打开一个Untitle1.res的窗
口,其中有一个树控件。选中树控件中的Contents条目,单击鼠标右键,在弹出式菜单中选择
New|Cursor,然后再双击新出现的Cursor1条目,弹出Cursor1(Untitle1.res)窗体。
3)在Cursor1(Untitle1.res)窗体中画出新的鼠标形状,如图5-3所示。
图5-3定制新的资源文件
4)选中Untitle1.res窗口,通过菜单命令File|Save将资源文件保存到工程所在的目录中,
文件名设置为CrossMouse.res。
5)选中CrossMouse.res窗口,单击其中的Cursor1条目,该条目变成改写状态。将其改为
CROSS,保存资源。
注意:在ImageEditor中,选中Cursor1(Untitle1.res)窗体,通过菜单Cursor|SetHotSpot...
可以给鼠标图形设置一个“热点”,也就是鼠标点击时一些事件处理过程中所确定的准确坐标,
可以通过菜单Cursor|Test...测试效果。
2.创建工程
通过菜单File|NewApplication创建一个新的工程。
3.添加代码
1)在Unit1.pas文件中定义如下变量和添加资源说明:
var
Form1:TForm1;
const crMyCursor=1;
{$RCrossMouse.res}//将资源文件包含到应用程序中去
implementation
...
2)添加窗体Form1的OnCreate事件的处理过程如下:
procedureTForm1.FormCreate(Sender:TObject);
begin
//装入鼠标资源
Screen.Cursors[crMyCursor]:=LoadCursor(hInstance,'Cross');
//改变窗体的鼠标形状
Cursor:=crMyCursor;
end;
4.编译、链接和运行程序
如果输入正确,程序将正常运行。
5.3.6
126基本第二部分Delphi编程的核心技能





自己解决了,一分也没有
 
后退
顶部