Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Guardar Posición De La Forma Con Respecto A La Pantalla (https://www.clubdelphi.com/foros/showthread.php?t=64007)

gulder 12-03-2009 12:59:42

Guardar Posición De La Forma Con Respecto A La Pantalla
 
Hola foro como andan espero que bien lo que yo quiero hacer es guardar la posición que el usuario coloca a la aplicación con respecto a la pantalla, lo pienso guardar en un archivo .ini eso lo se hacer lo que no se hacer es como al usuario mover la forma guardar esa posición y no se que propiedad colocarle al form en su propiedad Position espero que me ayan entendido mi pregunta gracias de anteano gulder-gan

dec 12-03-2009 13:21:39

Hola,

Las propiedades que has de guardar son "Top" y "Left". Y, normalmente, no es preciso hacerlo cada vez que el usuario mueve el formulario, sino, cuando lo cierre. De este modo podrías aprovechar el evento "OnClose". Respecto de los archivos INI no diré que hay que trabajar con la clase "TIniFiles", de la unidad "IniFiles", porque, esto ya has dicho que lo sabes. ;)

Young 12-03-2009 14:17:26

Hola, yo para eso utilizo el componente FormPlacement de las RxLib. La JVCL posee una paleta de componentes llamada Jv persistence en la cual existen varios componentes para guardar incluso propiedades de los formularios.

Espero te ayude.

-------------------------------------
Jedi Components WebInstall JCL - JVCL

gulder 12-03-2009 15:20:32

Hola
Gracias a dec y Young solocionada con el siguiente codigo lo dejo de muestra saludes



Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

  dir:string;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
dir := ExtractFilePath(ParamStr(0));

 iniFile := TIniFile.Create(dir+'p.ini');
  if  FileExists(dir+'p.ini') then begin

       form1.Height:= iniFile.ReadInteger('Interfaz', 'Heith_alto',0);
       form1.Width:= iniFile.ReadInteger('Interfaz', 'Whith_ancho',0);
       form1.Left:= iniFile.ReadInteger('Interfaz', 'Left_x',0);
       form1.Top:= iniFile.ReadInteger('Interfaz', 'Top_y',0);

  end else begin


  iniFile.WriteInteger('Interfaz', 'Heith_alto',580);
  iniFile.WriteInteger('Interfaz', 'Whith_ancho',800);
  iniFile.WriteInteger('Interfaz', 'Left_x',140);
  iniFile.WriteInteger('Interfaz', 'Top_y',80);

  end;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin

  iniFile := TIniFile.Create(dir+'p.ini');
  iniFile.WriteInteger('Interfaz', 'Heith_alto',form1.Height);
  iniFile.WriteInteger('Interfaz', 'Whith_ancho',form1.Width);
  iniFile.WriteInteger('Interfaz', 'Left_x',form1.Left);
  iniFile.WriteInteger('Interfaz', 'Top_y',form1.Top);


end;

end.

arturom 12-03-2009 16:32:57

Hola,
como consejo personal, deberias eliminar el fichero creado para no dejar sin recursos al sistema, usa la orden:
IniFile.Free
cuando termines de leer o escribir en el fichero ini.

Saludos


La franja horaria es GMT +2. Ahora son las 04:28:12.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi