mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 07:43:04 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
{ 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.
 |