Ver Mensaje Individual
  #8  
Antiguo 19-09-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Pareciera que el problema es el valor que lee del archivo 'fichero' en la variable 's' cosa que sin el archivo no es posible asegurar.

Modifiqué un poco el código (en negrita) sin alterar el funcionamiento original para que visualice el valor de 's' y puedas evaluarlo:
Código Delphi [-]
procedure inidir;
var
 s:string;
 i,j:byte;
 Inx: Integer;
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);
  with Form1 do
  begin
    radiogroup1.itemindex:= strtoint(s);
    readln(fichero,s);
    CheckBox1.Checked:= StrToBool(s);
    readln(fichero,s);
    CheckBox2.Checked:= StrToBool(s);
    readln(fichero,dirE);
    readln(fichero,dirt);
    readln(fichero,dirM);
    edit4.text:= dirM;
    readln(fichero,s);
    Inx := StrToInt(s);
    ShowMessage('Valor del indice: ', IntToStr(Inx));
    FileListBox1.FileName := FileListBox1.Items[Inx]; // o sólo: FileListBox1.FileName := FileListBox1.Items[StrToInt(s)];
    readln(fichero,s);  
    repeat
      CheckListBox1.Items.Add(copy(s,3,length(s)));
      if strtoint(copy(s,0,1))=1 then
      begin
        CheckListBox1.Checked[CheckListBox1.count-1]:=true;
        Inc(TotalCheck);
      end;
      readln(fichero,s);
    until pos(':',s)=0;
    while not eof(fichero) do
    begin
      CheckListBox2.Checked[i]:= StrToBool(s);
      inc(i);
      readln(fichero,s);
    end;
    close(fichero);
    statusbar1.Panels[3].Text:= inttostr(TotalCheck)+'/'+inttostr(CheckListBox1.Count);
    edit1.text:=dirE;
    edit2.text:=dirT;
  end;
end;
Si funciona, sólo elimina la línea del ShowMessage.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita