AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TMonthCalendar OnClick nur wenn man ein Datum ausgewählt hat.
Thema durchsuchen
Ansicht
Themen-Optionen

TMonthCalendar OnClick nur wenn man ein Datum ausgewählt hat.

Ein Thema von Piro · begonnen am 21. Mai 2013 · letzter Beitrag vom 26. Mai 2013
 
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#1

TMonthCalendar OnClick nur wenn man ein Datum ausgewählt hat.

  Alt 21. Mai 2013, 15:07
Moin zusammen,

ich erzeuge ein TMonthCalendar, wenn der Benutzer auf eins der 4 Kalender Icon drückt, um ein Datum auswählen zu lassen und es dann in ein TMaskEdit Feld zu schreiben. Damit möchte ich Falscheingaben vermeiden sowie einen Kalender zur Verfügung stellen. DateTimePicker kommt nicht in Frage, da es auch kein Datum geben kann und mir nicht gefällt.

Delphi-Quellcode:
procedure Tfrm_request.SetMonthCalendarDateToField(Sender: TObject);
var
 sender_name : string;
begin
 sender_name := (Sender as TComponent).Name;
 if sender_name = 'mc_customer_request_startthen
 begin
   medt_customer_requested_start.Text := FormatDateTime('dd.mm.yyyy', TMonthCalendar(Sender).Date);
   Sender.Free;
 end;
 if sender_name = 'mc_customer_request_endthen
 begin
   medt_customer_requested_end.Text := FormatDateTime('dd.mm.yyyy', TMonthCalendar(Sender).Date);
   Sender.Free;
 end;
 if sender_name = 'mc_project_startthen
 begin
   medt_project_start.Text := FormatDateTime('dd.mm.yyyy', TMonthCalendar(Sender).Date);
   Sender.Free;
 end;
 if sender_name = 'mc_project_endthen
 begin
   medt_project_end.Text := FormatDateTime('dd.mm.yyyy', TMonthCalendar(Sender).Date);
   Sender.Free;
 end;
end;

...

procedure Tfrm_request.img_customer_requested_start_calenderClick(
  Sender: TObject);
var
 monCal : TMonthCalendar;
begin
 monCal := TMonthCalendar.Create(Self);
 with monCal do
 begin
   Parent := p_dates;
   Name := 'mc_customer_request_start';
   Left := 120; //95
   Top := img_customer_requested_start.Top + img_customer_requested_start.Height+4;
   OnClick := SetMonthCalendarDateToField;
 end;
end;

...

procedure Tfrm_request.img_customer_requested_end_calenderClick(
  Sender: TObject);
var
 monCal : TMonthCalendar;
begin
 monCal := TMonthCalendar.Create(Self);
 with monCal do
 begin
   Parent := p_dates;
   Name := 'mc_customer_request_end';
   Left := 120; //95
   Top := img_customer_requested_end.Top + img_customer_requested_end.Height+4;
   OnClick := SetMonthCalendarDateToField;
 end;
end;
Mein Problem ist jetzt nur, dass jeder Klick auf das erzeugte TMonthCalender die OnClick Prozedur auslöst, d.h. auch wenn der Monat gewechselt wird. Das ist unglücklich.
Ich möchte gerne nur das Datum übertragen, wenn im TMonthCalendar wirklich ein Datum gesetzt wird.

Danke im Voraus.
Sven
Angehängte Grafiken
Dateityp: png MonthCalendar.png (8,4 KB, 33x aufgerufen)
  Mit Zitat antworten Zitat
 


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 01:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz