source: TEditExtensions/UTimeEdit.pas

Last change on this file was 1, checked in by chronos, 13 years ago
  • Added: TEDitExtensions component.
File size: 1.4 KB
Line 
1unit UTimeEdit;
2
3
4interface
5
6uses
7 Classes, SysUtils, StdCtrls, DateUtils, Controls, ExtCtrls;
8
9type
10
11 { TTimeEdit }
12
13 TTimeEdit = class(TEdit)
14 private
15 FTime: TTime;
16 procedure SetTime(const AValue: TTime);
17 procedure ChangeExecute(Sender: TObject);
18 public
19 constructor Create(AOwner: TComponent); override;
20 destructor Destroy; override;
21 published
22 property Time: TTime read FTime write SetTime;
23 end;
24
25procedure Register;
26
27implementation
28
29procedure Register;
30begin
31 RegisterComponents('TEditExtensions', [TTimeEdit]);
32end;
33
34{ TTimeEdit }
35
36procedure TTimeEdit.ChangeExecute(Sender: TObject);
37var
38 NewText: string;
39 Temp: TDateTime;
40begin
41 NewText := Text;
42 Delete(NewText, SelStart + 1, 1);
43 if TryStrToTime(NewText, Temp) then
44 FTime := Temp;
45 SetTime(FTime);
46end;
47
48procedure TTimeEdit.SetTime(const AValue: TTime);
49var
50 LastPos: Integer;
51begin
52 FTime := AValue;
53
54 LastPos := SelStart;
55 OnChange := nil;
56 Text := TimeToStr(FTime);
57 if HourOf(FTime) < 10 then Text := '0' + Text;
58 OnChange := ChangeExecute;
59 if LastPos = 2 then Inc(LastPos);
60 if LastPos = 5 then Inc(LastPos);
61 SelStart := LastPos;
62end;
63
64constructor TTimeEdit.Create(AOwner: TComponent);
65begin
66 inherited Create(AOwner);
67 OnChange := ChangeExecute;
68end;
69
70destructor TTimeEdit.Destroy;
71begin
72 inherited Destroy;
73end;
74
75end.
76
Note: See TracBrowser for help on using the repository browser.