总是出现类型不兼容
[DCC Error] Unit1.pas(64): E2009 Incompatible types: 'method pointer and regular procedure'
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject); private
{ Private declarations }
procedure ThreadsDone(Sender: TObject);
public
{ Public declarations } end;
type
TFooThread=class(TThread)
protected
procedure Execute;override;
end;
var
Form1: TForm1;implementation{$R *.dfm}
const
MaxSize=128;
var
NextNumber:integer=0;
DoneFlags:Integer=0;
GlobalArray:array[1..MaxSize]of integer;
function GetNextNumber:integer;
begin
Result:=NextNumber;
Inc(Nextnumber);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TFooThread.Create(False);
TFooThread.Create(false);
end;procedure TForm1.ThreadsDone(sender: TObject);
var
i: Integer;
begin
Inc(DoneFlags);
if DoneFlags = 2 then
for i := 1 to MaxSize do
Listbox1.Items.Add(IntToStr(GlobalArray[i]));
end;
procedure TFooThread.Execute;
var
I:integer;
begin
OnTerminate:=TForm1.ThreadsDone;
for I:=1 to MaxSize do
begin
GlobalArray[i]:=GetNextNumber;
Sleep(5);
end;
end;
end.
[DCC Error] Unit1.pas(64): E2009 Incompatible types: 'method pointer and regular procedure'
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject); private
{ Private declarations }
procedure ThreadsDone(Sender: TObject);
public
{ Public declarations } end;
type
TFooThread=class(TThread)
protected
procedure Execute;override;
end;
var
Form1: TForm1;implementation{$R *.dfm}
const
MaxSize=128;
var
NextNumber:integer=0;
DoneFlags:Integer=0;
GlobalArray:array[1..MaxSize]of integer;
function GetNextNumber:integer;
begin
Result:=NextNumber;
Inc(Nextnumber);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TFooThread.Create(False);
TFooThread.Create(false);
end;procedure TForm1.ThreadsDone(sender: TObject);
var
i: Integer;
begin
Inc(DoneFlags);
if DoneFlags = 2 then
for i := 1 to MaxSize do
Listbox1.Items.Add(IntToStr(GlobalArray[i]));
end;
procedure TFooThread.Execute;
var
I:integer;
begin
OnTerminate:=TForm1.ThreadsDone;
for I:=1 to MaxSize do
begin
GlobalArray[i]:=GetNextNumber;
Sleep(5);
end;
end;
end.
解决方案 »
- 系统,权限问题
- 如何调用 Windows 时间调整的那个对话框 ?
- 如何用ClientSocket建立两个连接?
- 用database desktop遍了个简单的表table1,在sqlquery查询后........
- 如何远程修改数据库中的列属性定义(请高手赐教,多谢!!!)
- 安装第三方控件后,什么样的控件是免费的??????
- VC中的LPVOID类型在Delphi中应该对应什么类型?
- 怎么在delphi书写xml的文件头
- cg1120(代码最优化-§惟坚韧者始能遂其志§) :如果在线请回答?
- 只要读取游戏内存数据,游戏就强制掉线,有没方法可以解决
- 网吧的万象网管?求解!
- double数组如何求乘积?
就是这一句
写错了……多加了个T