|
int ICount;
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
switch(ICount) {
case 0: Image1->Picture->LoadFromFile("Filename1");
break;
case 1: Image1->Picture->LoadFromFile("Filename2");
break;
case 2: Image1->Picture->LoadFromFile("Filename3");
}
if(ICount >= 2) ICount = 0;
else ICount++;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(!Timer1->Enabled) {
Timer1->Enabled = true;
ICount = 0;
}
else {
Timer1->Enabled = false;
}
}
Button1Click 에서 그림을 바꿔 줄려면.. 계속 버튼의 클릭 이벤트를 발생 시켜야 되는데요.
그것보다는 그냥 타이머에서 처리 하는게 더 효율적인거 같습니다.
그리고 이미지 3장을 올려 놓고 번갈아 가면서 보여 주는것 보단..
Image 컴포넌트에 그림을 바꿔 그리는게 더 쉬운 방법일수도..
허접 하지만 도움 되셨기를...
조찬영 님이 쓰신 글 :
: 답변 달아주셔서 무척 감사했습니다.
:
: 그런데 타이메 이벤트가 발생하는 것까진 괜찮은데, 꼭 그 속에서만 전부 처리가 되어야 하는건가요?
: 어...1000을 주면 1초 딜레이가 된다고 하셨는데...
: 예를 들어서요..
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: // 이 부분에서 타이머를 참조하여, 그림 세개를 포게어 놓고, 1초마다 하나씩만
: // 보여주어서 그림이 움직인것과 같은 효과를 내려고 합니다...
: // 이 버튼클릭내에서 구현하기는 힘든 것인가요? ....ㅡ.ㅡ
: }
:
: 버튼클릭이벤트에서 TTimer를 참조하여서 각 그림 로드시에, 1초씩 딜레이를 시킬 수는 없나요??
: 질문이 이상한것 같지만....음...도와 주시면 감사하겠습니다..ㅡ.ㅡ
: 감사합니다..날씨도 더운데 건강한 마무리 되시길 바랍니다..감사합니다.^^
:
:
: 조찬영 님이 쓰신 글 :
: : 안녕하세요?
: : 빌더에서 기본으로 제공하는 타이머를 가지고, 1초정도 딜레이 시켜가면서 작동을 천천히 지켜보려고 하고 있습니다.
: :
: : 어떤 방식으로 사용해야 하는 것인지요?
: :
: : 예를 들면..스크린 세이버 같은 것에서 말입니다.
: :
: : 여러가지의 그림을 순차적으로 일정 시간마다 바꾸면서 보여주는 형식등입니다...
: :
: : 알려 주시면 감사하겠습니다...
: :
: : 그럼 이만..
: : 좋은 하루 되세요.
|