const定义的当然不能赋值,
所以编译通不过。
所以编译通不过。
解决方案 »
- Delphi Double转byte[]
- 请问为什么delphi7龙卷风企业版安装后 新建中没有 ActiveX等很多项目呢?
- sendmessage能够模拟出按shift点击某控件(如TButton)吗?
- 一个关于adoquery的连接问题(在线等待...)
- 求屏蔽系统ctrl+alt+del三键的原码。因要做成DLL。。。请各位指点一下!
- public 和published的区别?
- 一个菜鸟的小小调查,请班主和各位高手看一下,给个回答,
- 模拟键盘输入组合键
- 谁会抓取本地音频?高手近来!
- delphi 程序在运行的时候,如何把当前Form的标题栏的颜色自定义,请问该如何做?
- StringGrid是内容如何作报表?
- 我想实现在dbgrid的计算列上点击一下打个勾, 再点击一下为空
{$J+} //如果你的编辑环境是Delphi6//可能这段代码是在Delphi5下调试的
const
Busy : Boolean = false;
//Delphi6默认为{$J-},而Delphi5默认为{$J+}
//具体资料请你参考Help
将const改为var吧,他是定义变量的。
I1: Integer = 2002; //对于单元变量是可以赋初值的implementationvar
I2: Integer = 2003; //对于单元变量是可以赋初值的function f: Boolean;
//var
// J: Integer = 10; //对于函数变量却不可以
const
J: Integer = 10; //但通过类型常量来赋初值//这样就相当于静态变量//如果编译环境是{$J+}则可以修改其值
begin
end;end.
不过,要进行相应设置。方法是:菜单上的:project->options->
Compiler,然后让Assignable typed constantst选中,就可以了。
或者采用zswang(伴水)(准备去流浪) 的方法,给它加上个{$j+}的编绎
指示!
Busy : Boolean = false;
在后面的代码中, 对Busy进行了赋值. 缺省情况下, Delphi允许你这样做. 而且, 这样可以使下次调用TForm1.OnIconNotify()时, Busy保持上次修改后的值. 这相当于使用了一个全局变量.
关于这个技巧更多知识, 可以查看《Delphi技术手册》. 这种技巧的准确名称是"带类型常量".
这本书是不是没有电子版的呀。我在网上找不到。
var 变量
{当主Form建立时通知Windows加入小图标}
procedure TForm1.FormCreate(Sender : TObject);
var
nid: TNotifyIconData;
begin
nid.cbSize := sizeof(nid); // nid变量的字节数
nid.Wnd := Handle; // 主窗口句柄
nid.uID := -1; // 内部标识,可设为任意数
nid.hIcon := Application.Icon.Handle; // 要加入的图标句柄,可任意指?
nid.hIcon := Application.Icon.Handle; // 要加入的图标句柄,可任意指? nid.szTip := 'This is a test application'; // 提示字符串
nid.uCallbackMessage := MY_MESSAGE; // 回调函数消息
nid.uFlags := NIF_ICON or NIF_TIP or NIF_MESSAGE; // 指明哪些字段有? if not Shell_NotifyIcon(NIM_ADD, @nid) then begin
ShowMessage('Failed!');
Application.Terminate;
end;
{将程序的窗口样式设为TOOL窗口,可避免在任务条上出现}
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
end; 还有这里:nid.uID := -1; // 内部标识,可设为任意数这里提示出错了。
说是Constant expression violates subrange bounds到底为什么呢 ?