//看看function Calc(mText: string; mKey: string): string;
var
  I, J: Integer;
  vLenKey: Integer;
  vLenText: Integer;
  vMaskKey: string;
  T: string;
begin
  Result := '';
  vLenKey := Length(mKey);
  vLenText := Length(mText);
  vMaskKey := '';
  for I := 1 to vLenText div vLenKey + 1 do
    vMaskKey := vMaskKey + mKey;
  for I := 1 to vLenKey do begin
    T := '';
    for J := 1 to vLenText do
      if mText[J] = vMaskKey[J] then
        T := T + mText[J]
      else begin
        if Length(Result) < Length(T) then
          Result := T;
        T := '';
      end;
    if Length(Result) < Length(T) then
      Result := T;
    vMaskKey := vMaskKey + vMaskKey[Length(vMaskKey)];
    Delete(vMaskKey, 1, 1);
  end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
  Caption := Calc(Edit1.Text, Edit2.Text);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.Text := 'abbcabcabb';
  Edit2.Text := 'abc';
end;