Ver Mensaje Individual
  #1  
Antiguo 31-05-2013
Eze32 Eze32 is offline
Registrado
NULL
 
Registrado: may 2013
Posts: 3
Reputación: 0
Eze32 Va por buen camino
Ayuda con archivos binarios usando TFileStream

Hola Necesito hacer el un porgrama donde guarde en un archivo binario mediante TFileStream la posicion en donde esta quedo por ultimas ves la ventana, y el ancho y largo de la misma, pero al codificarlo me da el siguiente error:

[Pascal Error] Ejercicio3.pas(41): E2036 Variable required
[Pascal Error] Ejercicio3.pas(42): E2036 Variable required
[Pascal Error] Ejercicio3.pas(65): E2197 Constant object cannot be passed as var parameter
[Pascal Error] Ejercicio3.pas(66): E2197 Constant object cannot be passed as var parameter
[Pascal Error] Ejercicio3.pas(67): E2197 Constant object cannot be passed as var parameter
[Pascal Error] Ejercicio3.pas(68): E2197 Constant object cannot be passed as var parameter
[Pascal Fatal Error] Project1.dpr(5): F2063 Could not compile used unit 'Ejercicio3.pas'

Les agradeceria mucho si me dicen como hacer para usar bien archivos binarios en este programa.Muchas Gracias

El codigo es el siguiente:

Código:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
   Ini : TiniFile;
   Binario : TFileStream;
begin
   //Con Archivo Ini
  // Ini := TiniFile.Create(ExtractFilePath(Application.ExeName) + 'Config.ini');
   //Ini.WriteInteger('DIMESION','Ancho',Width);
   //Ini.WriteInteger('DIMESION','Alto',Height);
   //Ini.WriteInteger('Posicion','Izquierdo',Left);
   //Ini.WriteInteger('Posicion','Superior',top);
   //Ini.free;

   //Con Archivo Binario
   Binario := TFileStream.Create(ExtractFilePath(Application.ExeName) + 'Config.dat',fmCreate);
   Binario.Write(Left,sizeof(integer));
   Binario.Write(Top,sizeof(integer));
   Binario.Write(Width,sizeof(integer));
   Binario.Write(Height,sizeof(integer));
   Binario.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  Ini : TiniFile;
  Binario : TFileStream;
begin
  //Con Archivo Ini
  //Ini := TiniFile.Create(ExtractFilePath(Application.ExeName) + 'Config.ini');
  //Width := Ini.ReadInteger('DIMESION','Ancho',0);
  //Height := Ini.ReadInteger('DIMESION','Alto',0);
  //Left := Ini.ReadInteger('Posicion','Izquierdo',0);
  //Top := Ini.ReadInteger('Posicion','Superior',0);
  //Ini.free;

  //Con Archivo Binario
  Binario := TFileStream.Create(ExtractFilePath(Application.ExeName) + 'Config.dat',fmOpenRead);
  while Binario.Position < Binario.Size do
  begin
   Left := Binario.Read(Left ,sizeof(integer));
   Top := Binario.Read(Top ,sizeof(integer));
   Width :=Binario.Read(Width ,sizeof(integer));
   Height := Binario.Read(Height ,sizeof(integer));
  end;

  Binario.Free;
end;
Responder Con Cita