blob: a26c408f396af49316dee2758c5a19e9dc50c1a7 (
plain)
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
|
{ Source provided for Free Pascal Bug Report 2185 }
{ Submitted by "Andrew Johnson" on 2002-10-16 }
{ e-mail: AJ_Genius@Hotmail.com }
Program BugTest;
{$Mode ObjFPC}{$H+}
{off $Define InvertOrder}
Uses Classes;
Type
TMyClass = Class(TPersistent)
public
dummy : Longint;
{$IfNDef InvertOrder}
procedure Assign(Source : TPersistent); override;
procedure Assign(const value: integer);
{$Else InvertOrder}
procedure Assign(const value: integer);
procedure Assign(Source : TPersistent); override;
{$EndIf InvertOrder}
Constructor Create;
end;
procedure TMyClass.Assign(Source : TPersistent);
begin
If Source is TMyClass then
Dummy := TMyClass(Source).dummy;
end;
procedure TMyClass.Assign(const value: integer);
begin
Dummy := value;
end;
Constructor TMyClass.Create;
begin
Inherited Create;
end;
Const
ConstDummy : Integer = 3;
var
Test1, Test2 : TMyClass;
begin
Test1 := TMyClass.Create;
Test2 := TMyClass.Create;
Test1.Dummy := 2;
Test2.Dummy := 1;
Writeln(Test2.Dummy);
Test2.Assign(Test1);
Writeln(Test2.Dummy);
Test2.Assign(ConstDummy);
Writeln(Test2.Dummy);
Test1.Destroy;
Test2.Destroy;
end.
|