Fórum CehckListBox #378874

04/06/2010

0

Caros

Como posso "memorizar" os itens de uma CheckListBox?

Exmeplo:

Tenho os itens
1 - A
2 - B
3 - C
4 - D

O usuário acessa e clica nos checks 1 e 4...qdo ele retornar ao sistema, essas opções já devem estar marcadas 9gravou a ultima seleção).

Obrigado pela força!
Força sempre, sempre em frente!
Elton Ésqui

Elton Ésqui

Responder

Posts

04/06/2010

Fábio Cruz

Para memorizar, faça uma ligação com banco de dados
Responder

Gostei + 0

04/06/2010

Elton Ésqui

Nesse caso já existe uma ligação.
Os itens formados no checklist estão numa tabela. A medida que entra um dado o checklist exibe ele.

Responder

Gostei + 0

04/06/2010

Marco Salles

Caros

Como posso "memorizar" os itens de uma CheckListBox?

Exmeplo:

Tenho os itens
1 - A
2 - B
3 - C
4 - D

O usuário acessa e clica nos checks 1 e 4...qdo ele retornar ao sistema, essas opções já devem estar marcadas 9gravou a ultima seleção).

Obrigado pela força!
Força sempre, sempre em frente!
.   Então amigo ,pq não criar um classe para fazer esta Gravação .. Uma solução mais Orientada a Objeto que vc pode reutilizar inumera vezes .. Por exemplo  
unit uMemoryItemCheckListBox;
interface
uses
 Forms,CheckLst,SysUtils,Classes;
Type
   ICheckBoxAux = Interface
   procedure ExecuteLoad();
   procedure ExecuteSave();
 End;

Type
 TCheckBoxAux = class(TInterfacedObject,ICheckBoxAux)
 private
   FCheckListBox:TCheckListBox;
   FLista:TStrings;
   FArq:String;
 public
   constructor create(cklb:TCheckListBox);reintroduce;
   Destructor Destroy;override;
   procedure ExecuteLoad();
   procedure ExecuteSave();
end;
 

implementation
uses
dialogs;
constructor TCheckBoxAux.create(cklb:TCheckListBox);
var
  I: Integer;
begin
 FCheckListBox:=cklb;
 FCheckListBox.Columns:=cklb.Items.Count;
 FLista:=TStringList.Create;
 FArq:=ExtractFilePath(application.ExeName)+'Estado.txt';
end;
destructor TCheckBoxAux.Destroy;
begin
  FLista.SaveToFile(FArq);
  Flista.free;
  inherited;
end;

procedure TCheckBoxAux.ExecuteLoad;
var
i:integer;
begin
 if FileExists(FArq) then
   begin
     Flista.LoadFromFile(FArq);
     for I := 0 to Flista.Count - 1 do
       try
          FCheckListBox.Checked[I]:=StrToBool(Flista.Strings[i]);
       except
           FCheckListBox.Checked[I]:=false;
       end;
   end;
end;
procedure TCheckBoxAux.ExecuteSave;
var
  I: Integer;
begin
  for I := 0 to  FCheckListBox.Items.Count  -1 DO
     try
        FLista.Strings[i]:=booltoStr(FCheckListBox.Checked[I]);
    except
         FLista.Add(booltoStr(FCheckListBox.Checked[I]));
     end;
end;
end.
 
  para usar defina  
    
procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    MyCheckBoxAux:ICheckBoxAux;
  e depois  
procedure TForm3.FormCreate(Sender: TObject);
begin
MyCheckBoxAux:=TCheckBoxAux.create(CheckListBox1);
MyCheckBoxAux.ExecuteLoad; //carregando as alteraçoes
end;
 
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
MyCheckBoxAux.ExecuteSave; //persistindo as alterações ....
end;
       
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar