lo acabo de poner aparte en un boton y si levanta el onchange.
el mio, lo tengo en un procedimiento aparte que añado, a continuacion, a ver si me dicen por que no lo levanta:
Código Delphi
[-]procedure inidir;
var
s:string;
i,j:byte;
begin
TotalCheck:=0;i:=0;
IF NOT FileExists(extractfiledir(application.exename)+'\inidir.ini') THEN exit;
assign(fichero,extractfiledir(application.exename)+'\inidir.ini');RESET(FICHERO);
readln(fichero,s);form1.radiogroup1.itemindex:=strtoint(s);
readln(fichero,s);form1.CheckBox1.Checked:=StrToBool(s);
readln(fichero,s);form1.CheckBox2.Checked:=StrToBool(s);
readln(fichero,dirE);
readln(fichero,dirt);
readln(fichero,dirM);form1.edit4.text:=dirM;
readln(fichero,s);form1.FileListBox1.ItemIndex:=strtoint(s);
form1.FileListBox1.FileName := form1.FileListBox1.Items[form1.FileListBox1.ItemIndex];
readln(fichero,s);
repeat
form1.CheckListBox1.Items.Add(copy(s,3,length(s)));
if strtoint(copy(s,0,1))=1 then BEGIN
form1.CheckListBox1.Checked[form1.CheckListBox1.count-1]:=true;
Inc(TotalCheck);
END;
readln(fichero,s);
until pos(':',s)=0;
while not eof(fichero) do begin
form1.CheckListBox2.Checked[i]:=StrToBool(s);inc(i);
readln(fichero,s);
end;
close(fichero);
form1.statusbar1.Panels[3].Text:=inttostr(TotalCheck)+'/'+inttostr(form1.CheckListBox1.Count);
form1.edit1.text:=dirE;
form1.edit2.text:=dirT;
end;
gracias