DBDateTimePickeri wpisywanie daty z klawiatury

DBDateTimePickeri wpisywanie daty z klawiatury
MR
  • Rejestracja:prawie 7 lat
  • Ostatnio:około 3 godziny
  • Postów:118
0

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ć?

SK
  • Rejestracja:około 7 lat
  • Ostatnio:dzień
  • Postów:99
0

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.

edytowany 1x, ostatnio: skrzat
MR
  • Rejestracja:prawie 7 lat
  • Ostatnio:około 3 godziny
  • Postów:118
0
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.

MY
  • Rejestracja:prawie 10 lat
  • Ostatnio:15 dni
  • Postów:1083
0
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ć?

SK
  • Rejestracja:około 7 lat
  • Ostatnio:dzień
  • Postów:99
0

@My Razem
Czy to Delphi czy Lazarus. Jaka wersja?
Na 99,99% Onchange jest wykonywane po opuszczeniu pola, jeśli wpisuje się datę z palca.
Co ma Edit do OnChange kontrolki DBDateTimePicker?

flowCRANE
W tagach jest delphi, więc raczej chodzi o Delphi. ;)
MR
  • Rejestracja:prawie 7 lat
  • Ostatnio:około 3 godziny
  • Postów:118
0

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?

MY
  • Rejestracja:prawie 10 lat
  • Ostatnio:15 dni
  • Postów:1083
0
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.