⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simpleclock.cpp__.htm

📁 symbian clock 源代码..........
💻 HTM
字号:
<html><head><title>Exercise_GUIClock.rar SimpleClock.cpp</title>
<LINK href="/inc/read_style.css" type=text/css rel=stylesheet></head>
<body>
<p><a href=http://www.pudn.com>www.pudn.com</a> &gt; <a href="http://www.pudn.com/downloads91/sourcecode/comm/symbian/detail348522.html">Exercise_GUIClock.rar</a> &gt SimpleClock.cpp</p><!-- saved from http://www.pudn.com -->
<script src="/inc/gg_read1.js"></script><BR>
<pre name="code" class="cpp">
// SimpleClock.cpp 
// 
// Copyright (c) 2000 Symbian Ltd.  All rights reserved. 
 
// Asynchronous keyboard processing with messenger program. 
// A single CWriteKeyProcessor active object (derived from  
// class CActiveConsole) which accepts and prints keyboard 
// input to a console. 
 
#include "SimpleClock.h" 
#include "e32base.h" 
 
////////////////////////////////////////////////////////////////////////////// 
// 
// -----> CSimpleClock (implementation) 
// 
////////////////////////////////////////////////////////////////////////////// 
CSimpleClock::CSimpleClock() 
: CTimer(CActive::EPriorityStandard) 
// Construct standard-priority active object 
{ 
	iStop = FALSE; 
	 
}; 
 
 
CSimpleClock* CSimpleClock::NewL() 
{ 
	TTime tm; 
	tm.UniversalTime(); 
 
	return CSimpleClock::NewL(tm); 
} 
 
CSimpleClock* CSimpleClock::NewLC(const TTime & aTime) 
{ 
	CSimpleClock* self=new (ELeave) CSimpleClock(); 
	CleanupStack::PushL(self); 
	self->ConstructL(aTime); 
	return self; 
} 
 
CSimpleClock* CSimpleClock::NewL(const TTime & aTime) 
{ 
	CSimpleClock* self = NewLC(aTime); 
	CleanupStack::Pop(); 
	return self; 
} 
 
void CSimpleClock::ConstructL(const TTime & aTime) 
{ 
	iTime = aTime; 
	iObservers = new (ELeave) CArrayFixFlat<MClockObserver*>(5); 
	// Base class second-phase construction. 
	CTimer::ConstructL(); 
 
	CActiveScheduler::Add(this);  
} 
 
 
CSimpleClock::~CSimpleClock() 
{ 
	// Make sure we're cancelled 
	Cancel(); 
	delete iObservers; 
} 
 
void CSimpleClock::DoCancel() 
{ 
	// Base class 
	CTimer::DoCancel();  
} 
 
void CSimpleClock::IssueRequest() 
{ 
	if(IsActive()) 
		return; 
	CTimer::After(900000); 
} 
 
void CSimpleClock::RunL() 
{ 
	if (iStop == FALSE) 
	{ 
		iTime += TTimeIntervalSeconds(1); 
		TDateTime dt = iTime.DateTime(); 
		for(TInt i=0; i<iObservers->Count(); i++) 
		{ 
			iObservers->At(i)->UpdateClock(iTime); 
		} 
		IssueRequest(); 
 
	} 
} 
 
void CSimpleClock::Start() 
{ 
	iTime.UniversalTime(); 
	iTime += TTimeIntervalHours(8); 
	IssueRequest(); 
} 
 
 
 
void CSimpleClock::AddObserver(MClockObserver * aObserver) 
{ 
	for(TInt i=0; i<iObservers->Count(); i++) 
	{ 
		if( iObservers->At(i) == aObserver) 
			return; 
	} 
	iObservers->AppendL(aObserver); 
} 
 
 
void CSimpleClock::RemoveObserver(MClockObserver *aObserver) 
{ 
	TBool found = FALSE; 
	for(TInt i=0; i<iObservers->Count(); i++) 
	{ 
		if( iObservers->At(i) == aObserver) 
		{ 
			found = TRUE; 
			break; 
		} 
	} 
	if(found) 
		iObservers->Delete(i); 
}</pre>
<script src="/inc/gg_read2.js"></script><BR>
<script src="http://s117.cnzz.com/stat.php?id=1236358&web_id=1236358&show=pic" language="JavaScript" charset="gb2312"></script>
</body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -