-
Notifications
You must be signed in to change notification settings - Fork 0
/
id.pas
55 lines (43 loc) · 842 Bytes
/
id.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
unit Id;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils;
type
TId = class(TObject)
private
Value : String;
public
constructor CreateFromString(arg : String);
constructor Create;
function Equals(Obj: TObject): boolean; override;
function ToString: ansistring; override;
end;
implementation
constructor TId.Create;
var
Guid : TGuid;
begin
CreateGUID(Guid);
Value := GUIDToString(Guid);
end;
constructor TId.CreateFromString(arg : String);
begin
Value := arg;
end;
function TId.Equals(Obj: TObject): boolean;
var
Id : TId;
begin
If Obj is TId then
begin
Id := Obj as TId;
Equals := Value = Id.Value;
end else
Equals := false
end;
function TId.ToString: AnsiString;
begin
Result := Value;
end;
end.