求助有关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里面使用
...全文
183 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

5,386

社区成员

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

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