Mam komponent DBDateTimePicker
I jeśli rozwinę kalendarz i wybiorę z listy jakąś datę, to w zdarzeniu tego komponentu mam tę nową datę (i w datasecie w danym polu też jest ta data)
Ale jeśli umieszczę kursor w tym polu i wpiszę w klawiatury jaką datę, to w zdarzeniu OnChange ciągle mam tę poprzednią datę.
Muszę tę datę jakoś odświeżyć?
DBDateTimePickeri wpisywanie daty z klawiatury
- Rejestracja: dni
- Ostatnio: dni
- Postów: 119
- Rejestracja: dni
- Ostatnio: dni
- Postów: 101
Wydaje mi się, że zdarzenie OnChange zostanie wykonane, gdy opuścisz pole, np. naciskając TAB. Być może zadziała też naciśnięcie Enter, ale nie sprawdzałem.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 119
skrzat napisał(a):
Wydaje mi się, że zdarzenie OnChange zostanie wykonane, gdy opuścisz pole, np. naciskając TAB. Być może zadziała też naciśnięcie Enter, ale nie sprawdzałem.
No właśnie nie. Zmiana daty poprzez naciśniecie klawisza na klawiaturze. już wywołuje OnChange.
Tylko że w edicie mam jedną datę wpisaną, a we właściwości Date jest inna.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1107
My Razem napisał(a):
Muszę tę datę jakoś odświeżyć?
Po prostu dane do pola zapisują się po wyjściu z kontrolki. Popatrz na to w ten sposób. Pisząc datę z palca możesz zmienić np 4 cyfry i po każdej zmianie chcesz aby odbywało się zapisywanie do pola? Potencjalnie możesz mieć na polu w zdarzeniu OnChange jakieś przeliczanie terminów czy inne długo trwające operacje pobierające coś z bazy danych i naprawdę chcesz aby 4 razy się odpalało to zdarzenie? Po kliknięciu daty z rozwijanego kalendarza sprawa jest prosta użytkownik wybrał, więc można od razu zapisać do pola wybraną datę, ale po zmianie tylko jednej cyferki w miesiącu nie wiadomo czy to już ostateczna wersja, czy coś użytkownik zmieni więcej. Dlatego zapis jest po wyjściu z kontrolki.
Zapytam inaczej, jaki problem próbujesz rozwiązać?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 119
To co napisał Mr.YaHooo to całkowicie się z tym zgadzam.
Ale po każdym klawiszu mogę sprawdzać, czy data wpisana w kontrolce jest prawidłowa i dopiero wtedy wywołać moją funkcję.
Ale widzę że nic się z tym nie da zrobić.
Po prostu zamiast wywoływać mogą funkcję ze zdarzenia OnChange, trzeba ją wywołać na zdarzeniu OnExit?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1107
My Razem napisał(a):
Po prostu zamiast wywoływać mogą funkcję ze zdarzenia OnChange, trzeba ją wywołać na zdarzeniu OnExit?
Moim zdaniem tak by było najlepiej.