求助有关Delphi的Unit

songlaf 2005-08-03 11:49:28
在网上看到很多有关Delphi的Unit的涵数,不知道怎么用,另外我想自己写一个.可是有个问题.
比如下面的
unit UCommonOperate;

interface

uses
Classes,udbSQL;

type
UdbQuery1 = TUdbQuery;
function GetBookList: TStrings;
function GetBookIndex(Str: String): String;

implementation

uses main;

function GetBookList: TStrings;
var
returnResult:TStrings;
begin
returnResult := TStrings.Create;

mainf.UdbQuery1.SQL.Clear;
mainf.UdbQuery1.SQL.Add('select value from selfbook');
mainf.UdbQuery1.Open;
mainf.UdbQuery1.First;

while not mainf.UdbQuery1.Eof do
begin
returnResult.Add(mainf.UdbQuery1.Fields[0].AsString);
mainf.UdbQuery1.Next;
end;

mainf.UdbQuery1.close;
GetBookList := returnResult;
end;
为什么我如果去掉 UdbQuery1 = TUdbQuery;这行,就会出下面这行.
[Error] UCommonOperate.pas(9): Identifier expected but 'FUNCTION' found
而且为什么UdbQuery1 = TUdbQuery的=号前加冒号会有错,
我如何在这里定义一个全局的TUdbQuery变量
,还有我这段代码如何在另外的Form里面使用
...全文
211 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
亮剑_ 2005-08-03
  • 打赏
  • 举报
回复
type
UdbQuery1 = TUdbQuery;
function GetBookList: TStrings;
function GetBookIndex(Str: String): String;

这两个函数写在这里是全局函数,type是类型定义部分,类型定义是用=,不是:= ,比如
TForm1 = class(TForm)
...
end;

这样写可能清楚一点:
type
UdbQuery1 = TUdbQuery;

function GetBookList: TStrings;
function GetBookIndex(Str: String): String;
ztenv 2005-08-03
  • 打赏
  • 举报
回复
type
UdbQuery1 = TUdbQuery;
function GetBookList: TStrings;
function GetBookIndex(Str: String): String;

//这在类型自定义,如果你去掉了UdbQuery1 = TUdbQuery;,那么type去定义谁?UdbQuery1 = TUdbQuery;这句不是Delphi中的赋值语句,所以不能在前边加冒号;其它的楼上已回答了
xixuemao 2005-08-03
  • 打赏
  • 举报
回复
type
UdbQuery1 = TUdbQuery;
function GetBookList: TStrings;
function GetBookIndex(Str: String): String;

把type去掉,然后把 UdbQuery1 = TUdbQuery;放到implementation上面定义。
xixuemao 2005-08-03
  • 打赏
  • 举报
回复
全局变量在
var
....
.....

implementation//在上面定义即可。

其它form需要用这个单元,直接在uses里加入UCommonOperate就可以了。
liuyan55 2005-08-03
  • 打赏
  • 举报
回复
up
资源下载链接为: https://pan.quark.cn/s/9e7ef05254f8 在 Delphi 开发中,“Cannot resolve unit name” 是一个常见错误,表示编译器无法找到代码中引用的某个单元(unit)。单元是 Delphi 中的代码组织单元,包含类、函数、过程等元素。出现此错误的原因可能有以下几种: 单元路径问题:在代码中通过 uses 引入的单元可能不在项目路径或系统库路径中。需确保引用的单元存在于项目文件夹或 Delphi 的库路径内。 第三方库未正确引用:如果使用了第三方组件或库,需检查项目选项中的 “Library Path” 是否包含相关库路径。 命名冲突:可能存在同名但不在当前作用域的单元,导致编译器无法确定正确的单元。需检查代码中是否存在同名单元的混淆。 拼写错误:Delphi 是大小写敏感的,uses 后的单元名必须拼写正确,例如 “MyUnit” 和 “myunit” 是不同的单元。 工程配置错误:项目的配置可能有问题,导致编译器无法找到单元。需检查工程设置,确保所有文件都已正确添加到项目中。 文件损坏或丢失:单元文件可能损坏或被删除,需检查文件的完整性和物理存在。 更新或补丁问题:有时更新 Delphi 或相关组件的版本可以解决问题。如果有官方更新或补丁,应按照指导安装。 为解决此问题,可按以下步骤操作: 检查代码:仔细核对引用的单元名称是否正确。 验证路径:确认所有依赖项的路径是否正确。 搜索解决方案:在 Delphi 社区或在线论坛查找类似问题的解决方案。 重新构建项目:清理并重新构建项目,可能有助于解决问题。 求助社区:如果无法解决,可在 Delphi 论坛或 Stack Overflow 等平台发帖求助,提供详细信息。 遇到此类问题时,保持耐心,仔细排查,通常能找到解决办法。希望这个解答能帮助你和其他开发者解决

5,935

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧