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 14-06-2018
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.323
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
Porque la línea:
Código Delphi [-]
  CheckListBox1.Items.SaveToFile('c:\1TProItems.cln');


Sólo guarda los elementos, no su estado (checked o no).
Quien sí guarda esa información es el DBGrid junto a las columnas con esta línea:


Código Delphi [-]
    DBGridProductos.Columns.SaveToFile('c:\1TProColum.cln');


Entonces como ya tienes esa información en las columnas, sólo tienes que pasarla al componente de CheckListBox.
Añade esto en el FormCreate:


Código Delphi [-]
    ...
   CheckListBox1.Items.LoadFromFile('C:\1TProItems.cln');
    for i:= 0 to DBGridProductos.Columns.Count-1 do  begin
      CheckListBox1.Checked[i]:= DBGridProductos.Columns[i].Visible;
    end;
   ....
__________________
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
  #2  
Antiguo 14-06-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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.

Otra opción para el TCheckListBox que requiere escribir un poquito más, pero te permite reutilizar los nuevos métodos añadidos cuando lo precises:
Código Delphi [-]
unit CheckListBoxEx;

interface

uses SysUtils, Classes, CheckLst;

type
  TCheckListBox = class(CheckLst.TCheckListBox)
  public
    procedure SaveToFile(const FileName: string);
    procedure LoadFromFile(const FileName: string);
  end;

implementation

procedure TCheckListBox.SaveToFile(const FileName: string);
var
  i: Integer;
  TS: TStrings;
begin
  TS := TStringList.Create;
  try
    for i := 0 to Self.Items.Count-1 do
      if Self.Checked[i] then
        TS.Add('*' + Self.Items[i])
      else
        TS.Add(' ' + Self.Items[i]);
    TS.SaveToFile(FileName);
  finally
    TS.Free;
  end;
end;

procedure TCheckListBox.LoadFromFile(const FileName: string);
var
  i: Integer;
  TS: TStrings;
begin
  if not FileExists(FileName) then
    raise Exception.Create('Archivo no encontrado');
  Self.Items.Clear;
  TS := TStringList.Create;
  try
    TS.LoadFromFile(FileName);
    for i := 0 to TS.Count-1 do
    begin
      Self.Items.Add(Copy(TS[i], 2, MaxInt));
      Self.Checked[i] := TS[i][1] = '*';
    end;
  finally
    TS.Free;
  end;
end;
end.

Ejemplo de uso:
Código Delphi [-]
unit Unit1;

interface

uses  ..., { siempre añadir última -> } CheckListBoxEx;

type
  TForm1 = class(TForm)
    CheckListBox1: TCheckListBox;
    btnSave: TButton;
    btnLoad: TButton;
    procedure btnSaveClick(Sender: TObject);
    procedure btnLoadClick(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

implementation 

const  FNAME = 'Items.cln';

procedure TForm1.btnSaveClick(Sender: TObject);
begin
  CheckListBox1.SaveToFile(FNAME);
end;

procedure TForm1.btnLoadClick(Sender: TObject);
begin
  CheckListBox1.LoadFromFile(FNAME);
end;
...

Muestra:


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 15-06-2018
DiegoPucho DiegoPucho is offline
Miembro
NULL
 
Registrado: ago 2017
Posts: 36
Poder: 0
DiegoPucho Va por buen camino
Muchas Gracias ecfisa y Neftali muy buena la explicación...
Se podría guardar todo en un solo archivo?? Digo datos del DbGrid y datos del CheckListBox???
Responder Con Cita
  #4  
Antiguo 15-06-2018
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.323
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 DiegoPucho Ver Mensaje
Se podría guardar todo en un solo archivo?? Digo datos del DbGrid y datos del CheckListBox???

Si utilizas los métodos que ya hay no, ya que son componentes diferentes y cada cual guarda su información y en su formato.
Pero siempre puedes extender lo que hay, de la forma que ha explicado ecfisa, y programar tú lo que necesites con el formato que quieras.
__________________
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
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
Guardar y Leer fotos directamente a una base de datos sin antes guardar como archivo rmeckbell Desarrollo en Delphi para Android 6 26-06-2017 18:24:20
Como guardar datos de un dbgrid en un fichero walter86 Varios 7 23-08-2016 18:08:43
Guardar datos desde un dbgrid estopi Conexión con bases de datos 9 11-01-2015 23:54:41
guardar datos de un DBGrid a dos tablas jeysi Varios 5 01-01-2008 01:25:24


La franja horaria es GMT +2. Ahora son las 05:52:06.


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