[fpc-pascal] Problem with objects
Howard Page-Clark
hdpc at talktalk.net
Wed Dec 23 13:57:37 CET 2015
On 23/12/2015 11:40, Santiago A. wrote:
> It's an object, not a class inherited from Tobject, so it hasn't create
> constructor.
Try this:
program simpleObjConsole;
type
{ TSimpleArrayString }
TSimpleArrayString=object
public
List:array of String;
constructor Init;
destructor Destroy;
function AddedTextIndex(const aText: string): integer;
function StringCount: integer;
end;
constructor TSimpleArrayString.Init;
begin
SetLength(List, 0);
end;
destructor TSimpleArrayString.Destroy;
begin
SetLength(List, 0);
end;
function TSimpleArrayString.AddedTextIndex(const aText: string): integer;
begin
Result:=Length(List);
SetLength(List, Result+1);
List[Result]:=aText;
end;
function TSimpleArrayString.StringCount: integer;
begin
Result:=Length(List);
end;
type
{ TDerivedArrayString }
TDerivedArrayString=object(TSimpleArrayString)
other_field:integer;
public
constructor Init(anInt: integer);
end;
constructor TDerivedArrayString.Init(anInt: integer);
begin
inherited Init;
other_field:=anInt;
end;
procedure TestDerived;
var
idx, n: integer;
das: TDerivedArrayString;
begin
das.Init(19);
idx:=das.AddedTextIndex('test string');
n:=das.StringCount;
WriteLn('das has ',das.StringCount,' string(s), and
das.other_field=',das.other_field);
if (n > 0) then
WriteLn('First string in das.List is "',das.List[idx],'" at
index:',idx);
ReadLn;
das.Destroy;
end;
begin
TestDerived;
end.
---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
More information about the fpc-pascal
mailing list