大侠们好!xiaomi有一个问题想请教!!!!!!

时间:2021-05-15 23:02:43
我在一个窗体中用2个Timer事件,分别控制2个Edit控件中的数据,让一个Edit中的数从初始值减到0,再让另一个Edit中的数从初始值减到0,都能实现!!!为什么从主窗体中传入数据到被调用的窗体中,分别放入2个Edit中,且用2个Timer事件分别控制以实现同样的功能,而他们总是同时减到0。请问为什么!!!方法相同呀,为什么会出现这样的问题!!!!!!

8 个解决方案

#1


不太明白

#2


你可以在Timer1把EDIT1里面的数据减为0后再启动
TIMER@呀,
就是在Timer1里启动Timer2不要让Timer2跟Timer1同时开始计时,

#3


#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int m,n;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{ Timer1->Enabled =true;
Timer2->Enabled =false;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{   int n;

n=StrToInt(Edit1->Text);
if(n>0)
Edit1->Text=IntToStr(n-1);
 if(n==0)
Timer2->Enabled =true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer2Timer(TObject *Sender)
{

m=StrToInt(Edit2->Text);
if(m>0)
Edit2->Text=IntToStr(m-1);
}

这使我在一个窗体中,运行出来的程序,但如果m,n从主窗体中来(本程序为子窗体的.cpp程序)就运行不出来了!(Edit1,Edit2中的数同时减到0!!!)
同时,再请教一个问题,能不能帮我编一个打印图像的程序(BMP图像)?!!!万分感激!!!

#4


这里:
__fastcall TForm1::Timer1Timer(TObject *Sender)
{   
if(n>0)
 Edit1->Text=IntToStr(--n);
else
  {Timer2->Enabled =true;Timer1->Enable=false;}
}

void __fastcall TForm1::Timer2Timer(TObject *Sender)
{


if(m>0)
Edit2->Text=IntToStr(--m);
}

#5


不太明白
 说清楚点好么?

#6


楼主是怎样传参数的?可能跟你传参数的时间有关。

#7


按理两个timer不同时启动就行了

#8


m,n参数怎样从主窗体中传过来?

#1


不太明白

#2


你可以在Timer1把EDIT1里面的数据减为0后再启动
TIMER@呀,
就是在Timer1里启动Timer2不要让Timer2跟Timer1同时开始计时,

#3


#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int m,n;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{ Timer1->Enabled =true;
Timer2->Enabled =false;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{   int n;

n=StrToInt(Edit1->Text);
if(n>0)
Edit1->Text=IntToStr(n-1);
 if(n==0)
Timer2->Enabled =true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer2Timer(TObject *Sender)
{

m=StrToInt(Edit2->Text);
if(m>0)
Edit2->Text=IntToStr(m-1);
}

这使我在一个窗体中,运行出来的程序,但如果m,n从主窗体中来(本程序为子窗体的.cpp程序)就运行不出来了!(Edit1,Edit2中的数同时减到0!!!)
同时,再请教一个问题,能不能帮我编一个打印图像的程序(BMP图像)?!!!万分感激!!!

#4


这里:
__fastcall TForm1::Timer1Timer(TObject *Sender)
{   
if(n>0)
 Edit1->Text=IntToStr(--n);
else
  {Timer2->Enabled =true;Timer1->Enable=false;}
}

void __fastcall TForm1::Timer2Timer(TObject *Sender)
{


if(m>0)
Edit2->Text=IntToStr(--m);
}

#5


不太明白
 说清楚点好么?

#6


楼主是怎样传参数的?可能跟你传参数的时间有关。

#7


按理两个timer不同时启动就行了

#8


m,n参数怎样从主窗体中传过来?