code for Turbo Delphi win32
Code:
type
 MyString = record
  data: string;
  function Trim: MyString;
  class operator implicit(a: string): MyString;
  class operator implicit(a: MyString): String;
 end;

{ MyString }

class operator MyString.implicit(a: string): MyString;
begin
   result.data := a;
end;

class operator MyString.implicit(a: MyString): String;
begin
   result := a.data;
end;

function MyString.Trim: MyString;
begin
   //trim stuff here
   result := self;
end;

begin
   a := '    This is an test string   ';
   writeln(string(a.Trim()));
end;