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ć?
- Rejestracja:prawie 7 lat
- Ostatnio:około 3 godziny
- Postów:118
- Rejestracja:prawie 7 lat
- Ostatnio:około 3 godziny
- Postów:118
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:prawie 10 lat
- Ostatnio:15 dni
- Postów:1083
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:prawie 7 lat
- Ostatnio:około 3 godziny
- Postów:118
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:prawie 10 lat
- Ostatnio:15 dni
- Postów:1083
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.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.
delphi
, więc raczej chodzi o Delphi. ;)