pub是我自己建立的一个unit,里面的所有过程和函数都是公用的.
dm是我的一个数据库模块!findname是执行一个查询的语句!
调用的语句为:pub.TCbBAdd(cbb1,SQL);
下面的是我做的这个过程:
procedure Tpub.TCbBAdd(var Sender: Tobject; SQL: String);
var i:integer;
begin
if Sender is TCombobox then
begin
dm.findname(SQL);
dm.check.First;
for i:=0 to dm.check.RecordCount-1 do
begin
TCombobox(Sender).items.add(dm.check.Fields[0].AsString);
dm.check.Next;
end;
end;
end;
提示的错误:
[Error] LoginUnit.pas(132): Types of actual and formal var parameters must be identical
dm是我的一个数据库模块!findname是执行一个查询的语句!
调用的语句为:pub.TCbBAdd(cbb1,SQL);
下面的是我做的这个过程:
procedure Tpub.TCbBAdd(var Sender: Tobject; SQL: String);
var i:integer;
begin
if Sender is TCombobox then
begin
dm.findname(SQL);
dm.check.First;
for i:=0 to dm.check.RecordCount-1 do
begin
TCombobox(Sender).items.add(dm.check.Fields[0].AsString);
dm.check.Next;
end;
end;
end;
提示的错误:
[Error] LoginUnit.pas(132): Types of actual and formal var parameters must be identical
解决方案 »
- *** 進來吧,相信你能幫我! 一個沒入門的線程問題
- 我想在edit控件里面,仅仅响应鼠标的右建粘贴事件,怎么做啊?大侠
- 我要用dbexpress连接*.dbf数据库文件,但是又找不到dbExpress driver for FoxPro,请问该如何连接?
- 如何让程序至始至终让鼠标保持正常指针,而不要出现Sql查询时的crHourGlass形状??
- 如何实现两部机联网操作?100分相送
- 关于自己建立了一个pas文件,但是出现错误
- 求助?
- mwedit控件好像都是1999年做的,我现在发现它在选择一个SQL文件中的一个单词,会有问题
- 怎么把button1设置为系统缺省的按钮?
- TO qiubolecn(来自差生市): 是的,请教,你有这方面的资料吗?谢谢!
- 存储过程执行出现超时已过期!在Sql server查询分析器中执行没问题!但在程序中用ADO连接执行就提示超时已过期!
- 如何用suipack做mdi的界面?
^^^ 去掉var
你參考一下:
unit ToExcel;
interface
uses
Variants,Messages,Classes, Excel2000,SysUtils,DB, ADODB;
type
Excelapplication1=class(TExcelapplication);
ExcelWorkBook1=class(TExcelWorkBook);
ExcelworkSheet1=class(TExcelworkSheet);
procedure DataToExcel(ado:Tadoquery;r1:variant);
procedure close;
procedure ExcelCreate(self:Tcomponent);
var
app:Excelapplication1;
sht:ExcelWorksheet1;
book:Excelworkbook1;
implementation
uses Unit1;procedure ExcelCreate(self:Tcomponent);
begin
app:=ExcelApplication1.Create(self);
book:=ExcelWorkbook1.Create(self);
Sht:=ExcelWorksheet1.Create(self);
end;
procedure DataToExcel(ado:Tadoquery;r1:variant);
var
I: Integer;
begin
try
app.Visible[0] := True;
try
Book.ConnectTo(App.Workbooks.Add(EmptyParam, 0));
except
raise Exception.Create('鏈接到Excel文件出錯,可能是沒有安裝Excel文件');
end;
{for I := 0 to ado.FieldCount-1 do // Iterate
begin
sht.Cells.Item[1,I+1]:=ado.Fields[I].DisplayLabel;
end; // for }
sht.ConnectTo(Book.Worksheets[1] as _WorkSheet); //EmptyParam
with sht.QueryTables.Add(ado.Recordset, Sht.Range[r1,EmptyParam],EmptyParam) do
begin
FieldNames:=false;
refresh(false);
end;
finally
end;
end;
procedure close;
begin
sht.Disconnect;
book.Disconnect;
App.Disconnect;
app.Quit;
sht.Free;
book.Free;
app.Free;
end;
end.
procedure Tpub.TCbBAdd(var Sender: Tobject; SQL: String);
我这个过程是要把传递过来的 Sender这个对象在这个过程里面改变它的items啊!怎么改变就是根据Sql语句查找出来的结果来改变!如果不用var的话,那不就是不是值传递了?执行完这个过程,我想改变的控件还是没变化的啊!难道不是吗?
最后使用这个没问题了!谢谢大家的帮助!