Autor Beitrag
Vegeto
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 262



BeitragVerfasst: Fr 24.01.14 10:53 
Hallo...

ich habe hier ein DateTimePicker, wie kann ich jz sehen oder bestimmen, dass wenn der DateTimePicker sein Datum verändert(ValueChanged), ob er ein tag höher oder ein Tag zurück gegangen ist?

Damit ist gemeint, wenn das DateTimePicker Value im moment auf 24.01.2014 ist, aber dieser auf 25.01.2014 oder 23.01.2014 (oder sogar 24.09.2013, 29.07.2014) verändert wird, das sind ja zustände entweder in die Zukuft(hoch) oder in die Vergangenheit(runter). Ob man das irgendwie auslesen kann also ob es eine Methode gibt die sagt Datetime isUp oder DateTime isDown????

Lg
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4803
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 24.01.14 10:59 
Hallo Vegeto,

merke dir doch einfach den aktuellen Wert (in einer eigenen Variablen) und vergleiche dann den geänderten Wert damit.
Vegeto Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 262



BeitragVerfasst: Fr 24.01.14 11:05 
Habe auch an das gedacht ^^

doch ich dachte vielleicht gibt es einen noch einfacheren weg, wo man nur paar schaurauben drehen muss
Aber wenn es nichts anderes gibt, dann mache ich das so...

Danke zunächst :)
Tranx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 648
Erhaltene Danke: 85

WIN 2000, WIN XP
D5 Prof
BeitragVerfasst: Fr 24.01.14 11:12 
Du könntest in der OnEnter-Ereignisroutine den aktuellen Wert in einer globalen TDateTime-Variablen speichern und dann in der OnChange-Routine abfragen ob der aktuelle Wert > oder < der globalen Variablen ist. Und am Ende dann die globale Variable mit dem neuen Wert speichern, falls Du jedesmal diese Abfrage haben möchtest. Und als Speichervariable für diese Abfrage könntest Du ja die property TAG der Komponente nehmen:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
unit Datetimpickertest;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    DateTimePicker1: TDateTimePicker;
    Edit1: TEdit;
    procedure DateTimePicker1Enter(Sender: TObject);
    procedure DateTimePicker1Change(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  GlobalDatum : TDateTime;

implementation

{$R *.DFM}

procedure TForm1.DateTimePicker1Enter(Sender: TObject); // Routine nur für TDatetimepickerkomponenten nutzen!!
begin
  GlobalDatum := (Sender as TDateTimePicker).Date;
end;

procedure TForm1.DateTimePicker1Change(Sender: TObject);  // Routine nur für TDatetimepickerkomponenten nutzen!!
var
  t : TDateTime;
  o : TDateTimePicker;  // um das Tag der Komponente anzusprechen
begin
  o := Sender as TDatetimePicker;
  t := o.Date;
  if (t>GlobalDatum) then
     o.Tag := 1
  else if (t=GlobalDatum) then
     o.Tag := 0
  else
     o.Tag := -1;
  GlobalDatum := t;
  Edit1.Text := 'Eintrag wurde wie geändert: ' + IntToStr(o.Tag);
end;

end.

_________________
Toleranz ist eine Grundvoraussetzung für das Leben.

Für diesen Beitrag haben gedankt: Vegeto
Vegeto Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 262



BeitragVerfasst: Fr 24.01.14 11:24 
Danke, versuche ich einzubauen...

TY