Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-05-2007
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
guardar cambios en ventanas

EStoy buscando en el foro sobre poder guardar los cambios en tiempo de ejecucion de los form por ejemplo, decis algo de archivos ini pero estoy buscando y no lo veo.
Podeis iluminar a este ciego?

gracias
Responder Con Cita
  #2  
Antiguo 17-05-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Busca en la ayuda de Delphi y en el buscador de los Foros por la clase "TIniFile" y/o por la unidad "IniFiles". Fijo que encuentras información.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 17-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por anubis
...sobre poder guardar los cambios en tiempo de ejecucion de los form por ejemplo
¿A qué tipo de cambios te refieres? ¿Posición, tamaño, valores?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 17-05-2007
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
si, a esos mismos me refiero, ya instale el paquete rxlib pero no me funciona bien, me da error al instalarlos.
Tambien instale los jedi jvc pero se empeña en entrar en internet.

De todas formas he estado mirando los tinifile en los foros y en la ayuda de delphi, pero una preguntita d eejemplo:
si quisiera guardar el estado de. form que contiene, viendo en formato texto:
Código Delphi [-]
object fhabitacion: Tfhabitacion
  Left = 40
  Top = 16
  BorderStyle = bsDialog
  Caption = 'Habitaciones'
  ClientHeight = 654
  ClientWidth = 685
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  KeyPreview = True
  OldCreateOrder = False
  OnShow = FormShow
  DesignSize = (
    685
    654)
  PixelsPerInch = 96
  TextHeight = 13

una linea de esas por ejemplo como se guardaria y como se haria para hacer efectivo el cambio cuando lo volviera a recuperar, porqu ese pasan lineas del/al ini.

gracias
Responder Con Cita
  #5  
Antiguo 17-05-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
En el oncreate de la forma:
Código Delphi [-]
var x:Tinifile;
begin 
  x := tinifile.Create(changeFileExt(application.exename, '.ini');
  form1.left := x.ReadInteger('Posicion', 'Left', 40);
  // otras
  x.free;

En el onclose de la forma:
Código Delphi [-]
var x:Tinifile;
begin 
  x := tinifile.Create(changeFileExt(application.exename, '.ini');
  x.WriteInteger('Posicion', 'Left', Form1.left);
  // otras
  x.free;

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 17-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Existe la opción "manual", que se puede hacer con un TIniFile o con un fichero de Texto (y un memo -SaveToFile-) y sería guardando líneas con los nombres de las propiedades y sus valores.

Una alternativa más automática, pero que guarda TODAS las propiedades, no sólo las que tú necesites es utilizar WriteComponent de los Streams.

Creo que esta función ya ha salido antes en los foros; También puedes encontrarla aquí. Es para obtener justo el textoque has colocado en tu mensaje.

Código Delphi [-]
function ComponentToString(Component: TComponent): string;
var
  BinStream:TMemoryStream;
  StrStream: TStringStream;
  s: string;
begin
  BinStream := TMemoryStream.Create;
  try
    StrStream := TStringStream.Create(s);
    try
      BinStream.WriteComponent(Component);
      BinStream.Seek(0, soFromBeginning);
      ObjectBinaryToText(BinStream, StrStream);
      StrStream.Seek(0, soFromBeginning);
      Result:= StrStream.DataString;
    finally
      StrStream.Free;

    end;
  finally
    BinStream.Free
  end;
end;

Te adjunto un ejemplo de cómo utilizarla.
Archivos Adjuntos
Tipo de Archivo: zip Components To String.zip (4,6 KB, 17 visitas)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 17-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Acabo de ver este hilo, donde se habla de esta misma función y creo que incluso hay una versión mejorada para guardar los compoennetes que pertenecen a otro.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #8  
Antiguo 17-05-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Neftali
Acabo de ver este hilo
¿A cuál hilo te refieres?

// Saludos
Responder Con Cita
  #9  
Antiguo 17-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por roman
¿A cuál hilo te refieres?

Este.

¡¡Qué cabeza la mía...!!
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #10  
Antiguo 17-05-2007
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
gracias por las respuestas, la verdad que de momento lo de stream es un poco complicado, porque solo me interesa guardar la posicion left y top puesto que no se permite resize.Encontre esta page buscando, por si a alguien le sirve

http://www.galeon.com/roberdi/PagDel...ticulos.htm#21

ahi lo explica bastante bien Ademas tiene mas cosas.

gracias
Responder Con Cita
  #11  
Antiguo 31-08-2017
Avatar de makina
makina makina is offline
Miembro
 
Registrado: oct 2005
Ubicación: Mexico DF.
Posts: 27
Poder: 0
makina Va por buen camino
Como crear la forma a partir del texto generado con el Twritecomponent

Hola Neftali. este ejemplo fue de mucha ayuda, gracias.
por otro lado tengo la necesidad de "re-crear" la forma y sus componentes a partir del texto generado con la función que utilizas en el ejemplo.

es decir. una vez generado el texto poderlo guardar y en tiempo de ejecución y dependiendo de las necesidades de la aplicación y el usuario se pueda "llamar" a esta forma re-creandola a partir del texto.

Muchas Gracias por anticipado.


Cita:
Empezado por Neftali Ver Mensaje
Existe la opción "manual", que se puede hacer con un TIniFile o con un fichero de Texto (y un memo -SaveToFile-) y sería guardando líneas con los nombres de las propiedades y sus valores.

Una alternativa más automática, pero que guarda TODAS las propiedades, no sólo las que tú necesites es utilizar WriteComponent de los Streams.

Creo que esta función ya ha salido antes en los foros; También puedes encontrarla aquí. Es para obtener justo el textoque has colocado en tu mensaje.

Código Delphi [-]
function ComponentToString(Component: TComponent): string;
var
  BinStream:TMemoryStream;
  StrStream: TStringStream;
  s: string;
begin
  BinStream := TMemoryStream.Create;
  try
    StrStream := TStringStream.Create(s);
    try
      BinStream.WriteComponent(Component);
      BinStream.Seek(0, soFromBeginning);
      ObjectBinaryToText(BinStream, StrStream);
      StrStream.Seek(0, soFromBeginning);
      Result:= StrStream.DataString;
    finally
      StrStream.Free;

    end;
  finally
    BinStream.Free
  end;
end;

Te adjunto un ejemplo de cómo utilizarla.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
No cerrar hasta guardar cambios mario2000 API de Windows 3 05-05-2007 19:27:06
Guardar cambios con componente TTable desve Tablas planas 1 26-04-2006 01:05:19
Guardar los cambios de componentes nuevos oesteve OOP 5 20-12-2005 21:08:54
Guardar Cambios DBgrid con CheckBox toorbye Varios 0 22-09-2005 12:57:55
Guardar cambios en tiempo d Ejecución kwan Varios 5 30-12-2003 23:24:48


La franja horaria es GMT +2. Ahora son las 23:16:43.


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
Copyright 1996-2007 Club Delphi