forked from academiadocodigo/TBGWebCharts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Generic.Coordinates.pas
82 lines (67 loc) · 1.75 KB
/
Generic.Coordinates.pas
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
unit Generic.Coordinates;
interface
uses
Interfaces;
type
TModelGenericCoordinates<T : IInterface> = class(TInterfacedObject, iModelGenericCoordinates<T>)
private
[weak]
FParent : T;
FLatitude : String;
FLongitude : String;
public
constructor Create(Parent : T);
destructor Destroy; override;
class function New(Parent : T) : iModelGenericCoordinates<T>;
function Latitude(Value : string) : iModelGenericCoordinates<T>; overload;
function Longitude(Value : string) : iModelGenericCoordinates<T>; overload;
function Latitude : string; overload;
function Longitude : string; overload;
function &End : T;
end;
implementation
uses
Injection;
{ TModelGenericCoordinates<T> }
constructor TModelGenericCoordinates<T>.Create(Parent: T);
begin
{$IF RTLVERSION > 27 }
TInjection.Weak(@FParent, Parent);
{$ELSE}
FParent := Parent;
{$IFEND}
end;
destructor TModelGenericCoordinates<T>.Destroy;
begin
inherited;
end;
function TModelGenericCoordinates<T>.&End: T;
begin
Result := FParent;
end;
function TModelGenericCoordinates<T>.Latitude(
Value: string): iModelGenericCoordinates<T>;
begin
Result := Self;
Flatitude := Value;
end;
function TModelGenericCoordinates<T>.Longitude(
Value: string): iModelGenericCoordinates<T>;
begin
Result := Self;
FLongitude := Value;
end;
class function TModelGenericCoordinates<T>.New(
Parent: T): iModelGenericCoordinates<T>;
begin
Result := Self.Create(Parent);
end;
function TModelGenericCoordinates<T>.Latitude: string;
begin
Result := FLatitude;
end;
function TModelGenericCoordinates<T>.Longitude: string;
begin
Result := FLongitude;
end;
end.