Ĺadny brzuch
Witam
potrzebuje napisac wlasna procedure DDV do walidacji np. kodu pocztowego z tym ze problem polega na tym ze nie wiem gdzie umiescic ta funkcje tak zeby kompilator nie protestowal. W MSDN wyczyatalem ze wywolanie mojej metody powinno byc wewnatrz metody DoDataExchange ale takze poza jakimis komentarzami. ja nie mam zadnych komentarzy w tej metodzie chociaz wszystkie klasy sa stworzone przez ClassWizard. Gdzie umiescic definicje takiej metody zeby byla ona dostepna we wszystkich klasach i we wszystkich plikach
void CMainClass::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_CODE, m_CODE); DDV_Regex(pDX, m_CODE,_T("^\\d{5}(-\\d{4})?$")); }
defincje metody DDV_Regex umieszczam w pliku MainClass.cpp
void DDV_Regex(CDataExchange* pDX, CString& val, LPCTSTR pszRegex) { //funkcja sprawdza poprawnosc itd... pDX->Fail(); // throws exception }
kompilator generuje takie info
c:\projekty\MainClass.cpp(72) : error C3861: 'DDV_Regex': identifier not found, even with argument-dependent lookup c:\projekty\MainClass.cpp(285) : error C2365: 'DDV_Regex' : redefinition; previous definition was a 'formerly unknown identifier'
Standardowo VC robi tak:
void CMainClass::DoDataExchange(CDataExchange* pDX) { //{{AFX_DATA_MAP(CMainClass) /// - > tu jest ten komentarz MS DDX_Control(pDX, IDC_COMBO1, m_WybraneNazwisko); DDX_Text(pDX, IDC_EDIT0, m_Lp); DDX_Radio(pDX, IDC_RADIO_DODAJ, m_DodajPracownika); //}}AFX_DATA_MAP /// - > a tu jest jego koniec DDV_Regex(pDX, m_CODE,_T("^\\d{5}(-\\d{4})?$")); // -> a tu jest miejsce poza komentarzem // -> a wewnątrz DoDataExchange }
Użytkownik imcpan edytował ten post 19 kwiecień 2007, 13:07
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
potrzebuje napisac wlasna procedure DDV do walidacji np. kodu pocztowego z tym ze problem polega na tym ze nie wiem gdzie umiescic ta funkcje tak zeby kompilator nie protestowal. W MSDN wyczyatalem ze wywolanie mojej metody powinno byc wewnatrz metody DoDataExchange ale takze poza jakimis komentarzami. ja nie mam zadnych komentarzy w tej metodzie chociaz wszystkie klasy sa stworzone przez ClassWizard. Gdzie umiescic definicje takiej metody zeby byla ona dostepna we wszystkich klasach i we wszystkich plikach
void CMainClass::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_CODE, m_CODE); DDV_Regex(pDX, m_CODE,_T("^\\d{5}(-\\d{4})?$")); }
defincje metody DDV_Regex umieszczam w pliku MainClass.cpp
void DDV_Regex(CDataExchange* pDX, CString& val, LPCTSTR pszRegex) { //funkcja sprawdza poprawnosc itd... pDX->Fail(); // throws exception }
kompilator generuje takie info
c:\projekty\MainClass.cpp(72) : error C3861: 'DDV_Regex': identifier not found, even with argument-dependent lookup c:\projekty\MainClass.cpp(285) : error C2365: 'DDV_Regex' : redefinition; previous definition was a 'formerly unknown identifier'
Standardowo VC robi tak:
void CMainClass::DoDataExchange(CDataExchange* pDX) { //{{AFX_DATA_MAP(CMainClass) /// - > tu jest ten komentarz MS DDX_Control(pDX, IDC_COMBO1, m_WybraneNazwisko); DDX_Text(pDX, IDC_EDIT0, m_Lp); DDX_Radio(pDX, IDC_RADIO_DODAJ, m_DodajPracownika); //}}AFX_DATA_MAP /// - > a tu jest jego koniec DDV_Regex(pDX, m_CODE,_T("^\\d{5}(-\\d{4})?$")); // -> a tu jest miejsce poza komentarzem // -> a wewnątrz DoDataExchange }
Użytkownik imcpan edytował ten post 19 kwiecień 2007, 13:07