AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi DateTimePicker OnChange wird nicht ausgelöst
Thema durchsuchen
Ansicht
Themen-Optionen

DateTimePicker OnChange wird nicht ausgelöst

Ein Thema von Luca Haas · begonnen am 26. Sep 2017 · letzter Beitrag vom 26. Sep 2017
Antwort Antwort
Luca Haas

Registriert seit: 23. Aug 2017
Ort: Bad Breisig
139 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

DateTimePicker OnChange wird nicht ausgelöst

  Alt 26. Sep 2017, 09:26
Hi Leute habe nochmal eine Frage bezüglich des DateTimePickers,

und zwar habe ich ein OnChange Ereignis, welches ausgelöst wird, wenn ich die Daten im DateTimePicker per Klick ändere.
Allerdings ändere ich die Daten auch per Button je um einen Tag nach Vorne oder nach Hinten und dabei wird das OnChange Ereignis nicht ausgelöst.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: DateTimePicker OnChange wird nicht ausgelöst

  Alt 26. Sep 2017, 09:28
Deine Frage dazu lautet also wie folgt?
  Mit Zitat antworten Zitat
Luca Haas

Registriert seit: 23. Aug 2017
Ort: Bad Breisig
139 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: DateTimePicker OnChange wird nicht ausgelöst

  Alt 26. Sep 2017, 09:31
Warum wird das OnChange nicht durch die Buttons ausgelöst? Im EditFeld wird das Datum durch meine Buttons geändert, aber das OnChange wird nicht ausgelöst.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: DateTimePicker OnChange wird nicht ausgelöst

  Alt 26. Sep 2017, 09:39
Wenn du im DateTimePicker die Werte änderst, dann wird die Methode TDateTimePicker.CNNotify aufgerufen.
Hier drin wird je nach Windows-Message Datum und Uhrzeit gesetzt (TCommonCalendar.SetDate von der übergeordneten Klasse und TDateTimePicker.SetTime).
Anschließend wird TDateTimePicker.Change aufgerufen. In dieser Methode wird dein Event-Handler angesprochen, insofern du einen angefügt hast.

Wenn du bspw. DateTimePicker1.Date := Date; im Code schreibst, rufst du intern direkt SetDate auf und umgehst die Benachrichtigung durch den Event-Handler.
Du kannst dir Abhilfe schaffen, in dem du es folgendermaßen schreibst:
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
  DateTimePicker1.Date := Date;
  DateTimePicker1.OnChange(nil);
end;
  Mit Zitat antworten Zitat
Luca Haas

Registriert seit: 23. Aug 2017
Ort: Bad Breisig
139 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: DateTimePicker OnChange wird nicht ausgelöst

  Alt 26. Sep 2017, 09:56
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
  DateTimePicker1.OnChange(nil);
end;
So klappt es, wenn ich die andere Zeile mit rein nehme bleibt der DateTimePicker durchgehend beim aktuellen Datum.

Aber danke
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: DateTimePicker OnChange wird nicht ausgelöst

  Alt 26. Sep 2017, 10:28
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
  DateTimePicker1.OnChange(nil);
end;
So klappt es, wenn ich die andere Zeile mit rein nehme bleibt der DateTimePicker durchgehend beim aktuellen Datum.

Aber danke
Ja, das diente auch nur zur Anschauung, damit die Date-Eigenschaft geändert wird...
Erwarte nicht, dass wir immer in unseren Codeschnipseln haargenau für dich passende Lösungen schreiben.
Diese Transferleistung musst du schon selber erbringen.
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.051 Beiträge
 
Delphi 2009 Professional
 
#7

AW: DateTimePicker OnChange wird nicht ausgelöst

  Alt 26. Sep 2017, 12:45
Es ist manchmal etwas seltsam, wann bei Delphi bei Änderungen mittels Code ein gewisses Ereignis ausgelöst wird.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz