我有一个空间类 TForm2 = class(TForm)
然后我写了一个多线程的程序:procedure Test(Sender: TObject);stdcall;
var
Exchange: string;
Date: PCHAR;
IsTradingTime_Result: integer;
obj: TForm2;
begin
obj.Create(application);
Exchange := obj.ComboBox4.Text;
Date := PCHAR(obj.IsTradingTimeEdit.Text);
IsTradingTime_Result := IsTradingTime(StrToInt(Exchange),Date);
obj.IsTradingTimeResult.Text := IntToStr(IsTradingTime_Result);
obj.Free;
end;procedure TForm2.MulThreadIsTradingDayClick(Sender: TObject);
var
ThreadID: DWORD;
hThreadHandle: THandle;
begin
hThreadHandle := CreateThread(nil,0,@Test,nil,0,ThreadID);end;
我现在一按MulThreadIsTradingDay按钮,代码就崩溃了,提示 obj.Create(application);
有问题,请问我该怎样改才可以呢?
然后我写了一个多线程的程序:procedure Test(Sender: TObject);stdcall;
var
Exchange: string;
Date: PCHAR;
IsTradingTime_Result: integer;
obj: TForm2;
begin
obj.Create(application);
Exchange := obj.ComboBox4.Text;
Date := PCHAR(obj.IsTradingTimeEdit.Text);
IsTradingTime_Result := IsTradingTime(StrToInt(Exchange),Date);
obj.IsTradingTimeResult.Text := IntToStr(IsTradingTime_Result);
obj.Free;
end;procedure TForm2.MulThreadIsTradingDayClick(Sender: TObject);
var
ThreadID: DWORD;
hThreadHandle: THandle;
begin
hThreadHandle := CreateThread(nil,0,@Test,nil,0,ThreadID);end;
我现在一按MulThreadIsTradingDay按钮,代码就崩溃了,提示 obj.Create(application);
有问题,请问我该怎样改才可以呢?
应该是TForm2.Create(application);现在的问题是 obj.IsTradingTimeResult.Text := IntToStr(IsTradingTime_Result);
这条语句我想往IsTradingTimeResult编辑框里面写内容,但是现在这样写的话内容出不来
因为Test是全局函数,所以单独的obj对象是不能往编辑框中写内容的,请问我要怎么写才可以?
不要在线程里操作VCL
这一句不起作用,应该怎么该才对呢?
listview1.items.add.caption := 'a';
listview1.items.add.subitems[0] := 'b';
listview1.items.add.subitems[1] := 'c';程序结果崩溃了,提示
List index out of bounds(0),请问应该如何正确往里面添加数据呢?
li.caption := 'a';