From the cuff w/o an IDE:

[pascal]unit Developer;

interface

type
TDeveloper = class
private
FPrimaryLanguage : String;
FSecondaryLanguages : TStringList;
procedure SetSecondaryLanguages(const Value:TStrings);
function GetSecondaryLanguages : TStrings;
public
constructor Create;
destructor Destroy; override;
published
property PrimaryLanguage : String read FPrimaryLanguage write FPrimaryLanguage;
property SecondaryLanguages : TStrings read GetSecondaryLanguages write SetSecondaryLanguages;
end;

implementation

constructor TDeveloper.Create;
begin
FSecondaryLanguages := TStringList.Create;
end;

destructor TDeveloper.Destroy;
begin
FSecondaryLanguages.Free;
inherited;
end;

procedure TDeveloper.SetSecondaryLanguages(const Value:TStrings);
begin
FSecondaryLanguages.Assign(Value);
end;

function TDeveloper.GetSecondaryLanguages : TStrings;
begin
result := FSecondaryLanguages;
end;

end.[/pascal]

Usage:
[pascal]program JeremyDarling;

{$APPTYPE CONSOLE}

uses
Developer;

var
Jeremy : TDeveloper;
i : Integer;
begin
Jeremy := TDeveloper.Create;
try
Jeremy.PrimaryLanguage := 'Pascal';
Jeremy.SecondaryLanguages.Add('PHP');
Jeremy.SecondaryLanguages.Add('Lua');
Jeremy.SecondaryLanguages.Add('C#');
Jeremy.SecondaryLanguages.Add('C/C++');
Jeremy.SecondaryLanguages.Add('Assembly (Multiple Types');
Jeremy.SecondaryLanguages.Add('English');
Jeremy.SecondaryLanguages.Add('Italian');
Jeremy.SecondaryLanguages.Add('German');
WriteLn('Jeremy speaks ' + Jeremy.PrimaryLanguage + ' fluently and the following as well (in order of skill):');
for i := 0 to Jeremy.SecondaryLanguages.Count -1 do
WriteLn(#9+Jeremy.SecondaryLanguages[i]);
finally
Jeremy.Free;
end;
end.
[/pascal]