我现在的子窗口是动态创建的,而且实现了分别取自己的数据画图,之前写的时候还能同时各自画各自的图形,并且各自能够停止,现在不行了,一旦第二个开始画,第一个画图就会停止,等第二个停止了第一个才会接着画,为什么呢?{画图代码}
procedure TFmMDIChild.DrawMychart(Sender:TObject);
var
k:Integer ;
begin
for k:=0 to CheckTime*60 do
begin
if Cstop[StrToInt(Copy(Self.Caption,3,1))] then //判断是否停止
Break ;
DrawChart(k,Y_show[StrToInt(Copy(Self.Caption,3,1))]);
Sleep(500);
Application.ProcessMessages;
end;
ToolButton3Click(Sender);
end;procedure TFmMDIChild.DrawChart(X:Integer;Y: Double);//画曲线
begin
Chart.BottomAxis.Maximum:=X;
Chart.Series[0].AddXY(X,Y);
Chart.Refresh;
if Tmax < Y then Tmax :=StrToFloat(Format('%.2f',[Y])); //小数点后精确两位
if i=0 then
Tmin :=Tmax ;
if Tmin > Y then Tmin :=StrToFloat(Format('%.2f',[Y]));
i:=1;
StatusBar1.Panels.Items[3].Text:=FloatToStr(Tmax)+'/'+FloatToStr(Tmin)+' 差值:'+FloatToStr(Tmax-Tmin);
end;
procedure TFmMDIChild.DrawMychart(Sender:TObject);
var
k:Integer ;
begin
for k:=0 to CheckTime*60 do
begin
if Cstop[StrToInt(Copy(Self.Caption,3,1))] then //判断是否停止
Break ;
DrawChart(k,Y_show[StrToInt(Copy(Self.Caption,3,1))]);
Sleep(500);
Application.ProcessMessages;
end;
ToolButton3Click(Sender);
end;procedure TFmMDIChild.DrawChart(X:Integer;Y: Double);//画曲线
begin
Chart.BottomAxis.Maximum:=X;
Chart.Series[0].AddXY(X,Y);
Chart.Refresh;
if Tmax < Y then Tmax :=StrToFloat(Format('%.2f',[Y])); //小数点后精确两位
if i=0 then
Tmin :=Tmax ;
if Tmin > Y then Tmin :=StrToFloat(Format('%.2f',[Y]));
i:=1;
StatusBar1.Panels.Items[3].Text:=FloatToStr(Tmax)+'/'+FloatToStr(Tmin)+' 差值:'+FloatToStr(Tmax-Tmin);
end;
解决方案 »
- idftp上传下载卡死的问题
- 那位推荐一些入门的外国人写的delphi书籍。
- 通过我的程序不能在托利多3公斤电子称中正常取的物体重量数据!!!急!!!在线等!!!
- 请教高手一个问题,关于任务栏上的。
- 有没有详细介绍BDE的呀, 怎么用它和SQL SERVER连接起来?
- 怎么调用SHELL命令啊?在DOS下好像可以的。
- delphi 中如何调用 CHM格式的帮助文件
- 请问:在WindowsXP下如何通过Delphi编程实现把某张图片设置为“平铺”墙纸(Tile)
- 请问怎么样将整个工程从内存中全部释放?
- 我用antinimda查杀尼姆达病毒后造成sqlserver管理器无法启动请问怎么解决?
- 用過DevExpress控件的進來,高分相送
- Delphi 2006 控件栏到哪里去了???还有控件属性栏也没有了
分别在窗口中实现一个线程,这个线程在运行完自己释放自己。在窗口的show事件中,动态创建该线程,在打开窗口时,form1.show;form2.show;时,各自的窗口都会自己画的。