stringgridimde 11 satır 10 sütunum var.Haritadan hangi ili seçersem stringgiride atacak ve aynı il tekrar tıklanırsa stringgirdden silecek ve eğer silinen ilin altında başka bir il varsa onu yukarı kaydıracak.bu procedurde dediğim işlemi yapıyor ancak ufak bir sorun var

procedure yukari_kaydir;
var
sondolu,x,y:integer;
degisti:boolean;
begin
repeat
degisti:=False;sondolu:=0;
y:=0;
for x:=1 to Form1.stringgrid2.RowCount do begin
if Form1.stringgrid2.Rows[x-1].Strings[0]<>'' then sondolu:=x;
if Form1.stringgrid2.Rows[x-1].Strings[0]='' then
if Form1.stringgrid2.Rows[x].Strings[0]<>'' then begin
Form1.stringgrid2.Rows[x-1].Strings[0]:= Form1.stringgrid2.Rows[x].Strings[0];
Form1.stringgrid2.Rows[x].Strings[0]:='';
degisti:=True;
if x=12 then
begin
Form1.stringgrid2.Rows[x-1].Strings[0]:= Form1.stringgrid2.Rows[0].Strings[1];
end;
end;
end;
şimdiden teşekkürler

