线程类:
TMyThread = class(TThread) //线程
private
FTag: Integer; //不同的创建标志 1- 2-
FTitle: String;
FmyDataArray: array of TCellData;
FLen: Integer;
FError: Boolean;
FFinished: Boolean;
Fhwnd: integer;
FZf: Double;
FExcelFileName: String;
FStrGrid: TStringGrid;
procedure DataToExcelFile(var dataArray: array of TCellData);
procedure ExcelDataToGrid(excelFileName:String;var Grid:TStringGrid);
protected
procedure Execute; override;
function GetZf: Double;
public
constructor Create(ghwnd:integer;var gt: String;
var dataArray:array f TCellData); overload;
constructor Create(var excelF:String;ghwnd:integer;
var Grid: TStringGrid);overload;
procedure setTitle(var gt: String);
function getTitle(): String;
procedure AssignGrid(var StrGrid:TStringGrid);
published
property Zf: Double read GetZf;
end;
//================================================
constructor TMyThread.Create(ghwnd:integer;var gt: String;
var dataArray: array of TCellData);
var
i: integer;
begin
FTag:=1;
FZf:=0;
FExcelFileName:='';
FStrGrid:= nil;
for i:=0 to 100 do
sleep(10); //
setlength(FmyDataArray,length(dataArray));
for i:= low(dataArray) to high(dataArray) do
begin
FmyDataArray[i].aCol:= dataArray[i].aCol;
FmyDataArray[i].aRow:= dataArray[i].aRow;
FmyDataArray[i].CellStr:= dataArray[i].CellStr;
end;
Fhwnd:= ghwnd;
Ftitle:= gt;
FError:= False;
FFinished:= False;
FLen:= high(dataArray) - low(dataArray) + 1;
FreeOnTerminate := True;
inherited Create(False);
end;
constructor TMyThread.Create(ghwnd:integer;var excelF:String;var Grid: TStringGrid);
begin
ftag:= 2;
FZf:=0;
FExcelFileName:=excelF;
FStrGrid:= Grid;
Fhwnd:= ghwnd;
FError:= False;
FFinished:= False;
FreeOnTerminate := True;
inherited Create(False);
end;
/////////////////////////
procedure TForm.BtnClick(sender:tobject);
var
_myth: tmythread;
str: string;
begin
str:= trim(edit1.text);
_myth:= tmythread.create(handle,str,stringgrid1);
//为什么创建线程类的时候提示错误?
//[Error] Unit1.pas(99): There is no overloaded version
//of 'Create' that can be called with these arguments
end;
TMyThread = class(TThread) //线程
private
FTag: Integer; //不同的创建标志 1- 2-
FTitle: String;
FmyDataArray: array of TCellData;
FLen: Integer;
FError: Boolean;
FFinished: Boolean;
Fhwnd: integer;
FZf: Double;
FExcelFileName: String;
FStrGrid: TStringGrid;
procedure DataToExcelFile(var dataArray: array of TCellData);
procedure ExcelDataToGrid(excelFileName:String;var Grid:TStringGrid);
protected
procedure Execute; override;
function GetZf: Double;
public
constructor Create(ghwnd:integer;var gt: String;
var dataArray:array f TCellData); overload;
constructor Create(var excelF:String;ghwnd:integer;
var Grid: TStringGrid);overload;
procedure setTitle(var gt: String);
function getTitle(): String;
procedure AssignGrid(var StrGrid:TStringGrid);
published
property Zf: Double read GetZf;
end;
//================================================
constructor TMyThread.Create(ghwnd:integer;var gt: String;
var dataArray: array of TCellData);
var
i: integer;
begin
FTag:=1;
FZf:=0;
FExcelFileName:='';
FStrGrid:= nil;
for i:=0 to 100 do
sleep(10); //
setlength(FmyDataArray,length(dataArray));
for i:= low(dataArray) to high(dataArray) do
begin
FmyDataArray[i].aCol:= dataArray[i].aCol;
FmyDataArray[i].aRow:= dataArray[i].aRow;
FmyDataArray[i].CellStr:= dataArray[i].CellStr;
end;
Fhwnd:= ghwnd;
Ftitle:= gt;
FError:= False;
FFinished:= False;
FLen:= high(dataArray) - low(dataArray) + 1;
FreeOnTerminate := True;
inherited Create(False);
end;
constructor TMyThread.Create(ghwnd:integer;var excelF:String;var Grid: TStringGrid);
begin
ftag:= 2;
FZf:=0;
FExcelFileName:=excelF;
FStrGrid:= Grid;
Fhwnd:= ghwnd;
FError:= False;
FFinished:= False;
FreeOnTerminate := True;
inherited Create(False);
end;
/////////////////////////
procedure TForm.BtnClick(sender:tobject);
var
_myth: tmythread;
str: string;
begin
str:= trim(edit1.text);
_myth:= tmythread.create(handle,str,stringgrid1);
//为什么创建线程类的时候提示错误?
//[Error] Unit1.pas(99): There is no overloaded version
//of 'Create' that can be called with these arguments
end;
解决方案 »
- 哪位大侠肯帮兄弟一把:如何用delphi6将一Sql server数据库中的几个表导入到另一Access数据库中?
- 寻找TdxfOutlookBar控件!!(请注意名称)---共60分
- 如何添加窗体
- 一个小问题。。。
- 求FastScript for Delphi XE3
- 這個查詢語句如何寫? 謝謝先!我要查出(員工請假)leave表中,時間從(請假開始時間)edit1.text到(請假結束時間)edit2.text這段時間,請假類
- 我要做一个服务器程序,一个工作站程序,在一个局域网中,一台电脑运行服务器程序,另一台运工作站程序,两个程序都有image控件,现在服
- 本人初来咋到.望多多关照!!
- 说不大清楚,还是请高手进来看
- UpdateSQL怎么实现对数据库的修改!我真的很急阿!
- 急呀,,~~~
- delphi 2006 for win32 到底需不需要borlndmm.dll啊
public
constructor Create(ghwnd: Integer; var gt: string;
var dataArray: array of TCellData); overload;
constructor Create(var excelF: string; ghwnd: Integer;
var Grid: TStringGrid); overload;
//...
constructor TMyThread.Create(ghwnd: Integer; var gt: string;
var dataArray: array of TCellData);constructor TMyThread.Create(var excelF: string; ghwnd: Integer;
var Grid: TStringGrid);
FreeOnTerminate := True;
强烈不建议将控件
var Grid: TStringGrid); overload
这个已经 改过来了
复制时候的错误,程序里改过来了,还是不行啊
TCellData = record
aCol: Integer;
aRow: Integer;
CellStr: string;
end;
TMyThread = class(TThread) //Ïß³Ì
private
FTag: Integer; //²»Í¬µÄ´´½¨±êÖ¾ 1- 2-
FTitle: String;
FmyDataArray: array of TCellData;
FLen: Integer;
FError: Boolean;
FFinished: Boolean;
Fhwnd: integer;
FZf: Double;
FExcelFileName: String;
FStrGrid: TStringGrid;
procedure DataToExcelFile(var dataArray: array of TCellData);
procedure ExcelDataToGrid(excelFileName:String;var Grid:TStringGrid);
protected
procedure Execute; override;
function GetZf: Double;
public
constructor Create(ghwnd:integer; var gt: String;
var dataArray:array of TCellData); overload;
constructor Create(ghwnd:integer; var excelF:String;
var Grid: TStringGrid);overload;
procedure setTitle(var gt: String);
function getTitle(): String;
procedure AssignGrid(var StrGrid:TStringGrid);
published
property Zf: Double read GetZf;
end;
//================================================
constructor TMyThread.Create(ghwnd:integer;var gt: String;
var dataArray: array of TCellData);
var
i: integer;
begin
FTag:=1;
FZf:=0;
FExcelFileName:='';
FStrGrid:= nil;
for i:=0 to 100 do
sleep(10); //
setlength(FmyDataArray,length(dataArray));
for i:= low(dataArray) to high(dataArray) do
begin
FmyDataArray[i].aCol:= dataArray[i].aCol;
FmyDataArray[i].aRow:= dataArray[i].aRow;
FmyDataArray[i].CellStr:= dataArray[i].CellStr;
end;
Fhwnd:= ghwnd;
Ftitle:= gt;
FError:= False;
FFinished:= False;
FLen:= high(dataArray) - low(dataArray) + 1;
FreeOnTerminate := True;
inherited Create(False);
end;procedure TMyThread.AssignGrid(var StrGrid: TStringGrid);
begin
//todo
end;constructor TMyThread.Create(ghwnd:integer; var excelF:String;
var Grid: TStringGrid);
begin
ftag:= 2;
FZf:=0;
FExcelFileName:=excelF;
FStrGrid:= Grid;
Fhwnd:= ghwnd;
FError:= False;
FFinished:= False;
FreeOnTerminate := True;
inherited Create(False);
end;procedure TMyThread.DataToExcelFile(var dataArray: array of TCellData);
beginend;procedure TMyThread.ExcelDataToGrid(excelFileName: String;
var Grid: TStringGrid);
beginend;procedure TMyThread.Execute;
begin
inherited;end;function TMyThread.getTitle: String;
beginend;function TMyThread.GetZf: Double;
beginend;procedure TMyThread.setTitle(var gt: String);
beginend;/////////////////////////
procedure TForm1.BtnClick(sender:tobject);
var
_myth: tmythread;
str: string;
begin
str:= trim(edit1.text);
_myth:= tmythread.create(handle, str, stringgrid1);
end;
声明的这个
constructor Create(var excelF:String;ghwnd:integer;
var Grid: TStringGrid);overload;跟实现的这个
constructor TMyThread.Create(ghwnd:integer;var excelF:String;var Grid: TStringGrid);
begin
ftag:= 2;
FZf:=0;
FExcelFileName:=excelF;
FStrGrid:= Grid;
Fhwnd:= ghwnd;
FError:= False;
FFinished:= False;
FreeOnTerminate := True;
inherited Create(False);
end;
参数顺序不对吧,这个我在程序里改过来了,
不过在我程序里还是提示那个错误,
我新建了一个工程,把代码复制进去就ok了~~~~~
唉,不管怎么样没事了~