anchor.diff:    c.FillRect(ARect);
     c.Font.Color:= GetAppColor('ListFont');
   
  -  str:= listItems[PtrInt(listItemsFiltered.Objects[AIndex])];
  -  strname:= SGetItem(str, #9);
  -  strkey:= SGetItem(str, #9);
  -  strfind:= Utf8Encode(Trim(edit.Text));
  +  str:= listItems[PtrInt(listFiltered[AIndex])]; //ansi
  +  strname:= Utf8Decode(SGetItem(str, #9)); //uni
  +  strkey:= Utf8Decode(SGetItem(str, #9)); //uni
  +  strfind:= Trim(edit.Text); //uni
   
     pnt:= Point(ARect.Left+4, ARect.Top+1);
  -  c.TextOut(pnt.x, pnt.y, strname);
  +  c.TextOut(pnt.x, pnt.y, Utf8Encode(strname));
   
     c.Font.Color:= GetAppColor('ListFontHilite');
     ar:= SFindFuzzyPositions(strname, strfind);
     for i:= Low(ar) to High(ar) do
     begin
  -    buf:= strname[ar[i]];
  -    n:= c.TextWidth(Copy(strname, 1, ar[i]-1));
  +    buf:= Utf8Encode(UnicodeString(strname[ar[i]]));
  +    n:= c.TextWidth(Utf8Encode(Copy(strname, 1, ar[i]-1)));
       r1:= Rect(pnt.x+n, pnt.y, pnt.x+n+c.TextWidth(buf), ARect.Bottom);
       ExtTextOut(c.Handle,
         r1.Left, r1.Top,
  
positive.code:       const ARect: TRect);
    private
      { private declarations }
      listItemsFiltered: TStringlist;
      procedure DoFilter;
      function GetResultCmd: integer;
      function IsFiltered(AOrigIndex: integer): boolean;
  
negative.code:   self.Width:= UiOps.ListboxWidth;
  
    listItems:= TStringlist.Create;
    listFiltered:= TList.Create;
  end;
  
  procedure TfmMenuApi.editChange(Sender: TObject);
  