菜鸟来问个有关问题!实现不了想要的结果

初学者来问个问题!实现不了想要的结果!
Delphi(Pascal) code
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    ComboBox1: TComboBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
     Form2.ShowModal;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   listBox1.Items.SaveToFile('chinese.txt');
   ComboBox1.Items.SaveToFile('english.txt');
 end;

procedure TForm1.Button3Click(Sender: TObject); //当按下删除时删除所选
begin
   listBox1.DeleteSelected;
   ComboBox1.DeleteSelected;
end;

procedure TForm1.FormCreate(Sender: TObject);  //从文件导入列表
begin
   listBox1.Items.LoadFromFile('chinese.txt');
   ComboBox1.Items.LoadFromFile('english.txt');
end;

procedure TForm1.ListBox1Click(Sender: TObject); //对应显示
begin
  ComboBox1.ItemIndex:=listBox1.ItemIndex;  
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  listBox1.ItemIndex:=ComboBox1.ItemIndex;

end;

end.

对应的教程:
第一个视频http://tech.163.com/08/1014/10/4O77E4TP000915SU.html
第二个视频http://tech.163.com/08/1014/10/4O77I3P9000915SU.html
上面的编译没有错,但出现当选中左边的右边出现对应的单词,反过来就不行;还有当选中后删除,右边的最后一个删除不了的,这个到底怎么回事啊,哪位高人给个解释,谢谢了!

------解决方案--------------------
1. ComboBox也应该使用Click事件,而不是Change事件(Change事件是由你在ComboBox中输入才触发的)。
2. (这一点我不确定,因为手边没有Delphi。我印象中是这样的,你自己检验一下)当你删除ListBox中的一项后,ListBox会更改ItemIndex,由此又会触发ListBox.OnClick,并因此修改了ComboBox的ItemIndex。当你删除ListBox最后一项时,ListBox.ItemIndex变成-1,因此ComboBox.ItemIndex也跟着变成-1,然后你再去删当前选中项,肯定是删不到了。
3. 你按照第1点修改了代码,而第2点又是象我说得那样,那么你的代码会造成死循环:ComboBox和ListBox的OnClick事件不停地触发新的OnClick事件……小心!!!