📄 postavivremedlg.cpp
字号:
// PostaviVremeDlg.cpp : implementation file
//
#include "stdafx.h"
#include "RucniTerminal.h"
#include "PostaviVremeDlg.h"
#include "UnosLozinkeDlg.h"
#include "Interpret.h"
#include "Komunikator.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPostaviVremeDlg dialog
CPostaviVremeDlg::CPostaviVremeDlg(CWnd* pParent /*=NULL*/)
: CDialog(CPostaviVremeDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CPostaviVremeDlg)
m_Datum = 0;
m_Vreme = 0;
//}}AFX_DATA_INIT
}
void CPostaviVremeDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPostaviVremeDlg)
DDX_DateTimeCtrl(pDX, IDC_DATUM, m_Datum);
DDX_DateTimeCtrl(pDX, IDC_VREME, m_Vreme);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPostaviVremeDlg, CDialog)
//{{AFX_MSG_MAP(CPostaviVremeDlg)
ON_BN_CLICKED(ID_SISTEMSKO_VREME, OnSistemskoVreme)
ON_BN_CLICKED(ID_DAJ_SISTEMSKO_I_SNIMI, OnDajSistemskoISnimi)
ON_BN_CLICKED(ID_OTKLJUCAJ_VREME, OnOtkljucajVreme)
ON_BN_CLICKED(ID_ZAKLJUCAJ_VREME, OnZakljucajVreme)
ON_BN_CLICKED(ID_IZMENI_LOZINKU, OnIzmeniLozinku)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPostaviVremeDlg message handlers
BOOL CPostaviVremeDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Postavi format datmskih polja
CRucniTerminalApp::FormatirajDateTimePicker( IDC_DATUM, "dd'.'MM'.'yyyy'.'", this );
CRucniTerminalApp::FormatirajDateTimePicker( IDC_VREME, "HH':'mm':'ss", this );
// Postavi datum i vreme na tekuci
PostaviSistemskoVreme();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
// Pomocna procedura : snima vreme na rucni terminal i ispisuje odgovarajuce poruke
void CPostaviVremeDlg::SnimiVremeNaTerminal( void ){
CRucniTerminalApp* pRTApp = ( CRucniTerminalApp* ) AfxGetApp();
pRTApp->PrikaziPorukuIKursorZaCekanje( IDS_SNIMANJE_PODATAKA, this );
// Najpre proveri da li je terminal spreman za narednu komandu
int PorukaID;
KAdminInfo admInf;
if( pRTApp->TerminalSpreman( PorukaID, admInf ) ) {
struct tm* komponente;
// Preuzmi podatke iz forme u odgovarajuce promenljive
CPostaviVremeDlg::UpdateData();
// Izdvoji casove, minute i sekunde
komponente = m_Vreme.GetLocalTm( NULL );
unsigned int nCas = komponente->tm_hour;
unsigned int nMinut = komponente->tm_min;
unsigned int nSekunda = komponente->tm_sec;
// Izdvoji dan u nedelji, dan u mesecu, mesec i godinu
komponente = m_Datum.GetLocalTm( NULL );
unsigned int nDanUNedelji = KInterpret::Instance()->
KonvertujDanUNedZaTerminal( komponente->tm_wday );
unsigned int nDanUMesecu = komponente->tm_mday;
unsigned int nMesec = komponente->tm_mon + 1;
unsigned int nGodina = komponente->tm_year + 1900;
// Formiraj poruku sa podacima o datumu i vremenu :
string cSadrzajPoruke;
cSadrzajPoruke = KInterpret::Instance()->VremeIDatumUString
( nCas, nMinut, nSekunda, nDanUNedelji,
nDanUMesecu, nMesec, nGodina,
admInf.VerzijaVecaIliJednaka( 1, 2 ) );
// Snimi datum i vreme na terminal
if ( KKomunikator::Instance()->SnimiNaTerminal( KT_POSTAVI_VREME, cSadrzajPoruke ) )
PorukaID = IDS_SNIMANJE_USPELO;
else
PorukaID = IDS_SNIMANJE_NEUSPELO;
}
pRTApp->UkloniPorukuIKursorZaCekanje();
pRTApp->MyMessageBox( PorukaID );
}
// Pomocna procedura : postavlja datumska polja na trenutni datum/vreme
void CPostaviVremeDlg::PostaviSistemskoVreme( void ){
// Postavi datum i vreme na tekuci
CTime sysdate = CTime::GetCurrentTime();
m_Datum = sysdate;
m_Vreme = sysdate;
// Osvezi polja forme ( usaglasi sa vrednostima odgovarajucih promenljivih )
CPostaviVremeDlg::UpdateData( FALSE );
}
void CPostaviVremeDlg::OnOK()
{
// Snimi vreme na rucni terminal i ispisi odgovarajuce poruke o izvrsenoj komandi
SnimiVremeNaTerminal();
}
void CPostaviVremeDlg::OnSistemskoVreme()
{
// Postavi datum i vreme na tekuci
PostaviSistemskoVreme();
}
void CPostaviVremeDlg::OnDajSistemskoISnimi()
{
// Postavi datum i vreme na tekuci
PostaviSistemskoVreme();
// Snimi vreme na rucni terminal i ispisi odgovarajuce poruke o izvrsenoj komandi
SnimiVremeNaTerminal();
}
void CPostaviVremeDlg::OnOtkljucajVreme()
{
CRucniTerminalApp* pRTApp = ( CRucniTerminalApp* ) AfxGetApp();
pRTApp->OtkljucajVreme( this );
}
void CPostaviVremeDlg::OnZakljucajVreme()
{
CRucniTerminalApp* pRTApp = ( CRucniTerminalApp* ) AfxGetApp();
pRTApp->ZakljucajVreme( this );
}
void CPostaviVremeDlg::OnIzmeniLozinku()
{
CRucniTerminalApp* pRTApp = ( CRucniTerminalApp* ) AfxGetApp();
pRTApp->IzmeniLozinkuZaVreme( this );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -