Ver Mensaje Individual
  #2  
Antiguo 13-06-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 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
Cita:
Empezado por Jovalca Ver Mensaje
...
Exactamente necesito que al pulsar un boton, me guarde en el listbox el contenido del Edit1 + (Delimitador) + Edit2. Y que al pulsar otro boton, sea capaz de devolver la informacion correspondiente desde el listbox al Edit1 y la del Edit2 al Edit2.
Hola jovalca.
Código Delphi [-]
...
type
  TListBox = class(StdCtrls.TListBox)
  public
    procedure LoadData(const aFileName: TFileName);
    procedure SaveData(const aFileName: TFileName);
  end;

  TForm1 = class(TForm)
    ListBox1: TListBox;
    btnAdd: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    btnSave: TButton;
    btnLoad: TButton;
    procedure btnAddClick(Sender: TObject);
    procedure btnSaveClick(Sender: TObject);
    procedure btnLoadClick(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
  private
  public
  end;
...

implementation 

const
  DELIM = '-';
  FILESTR = 'C:\Carpeta\ListBox1.txt';

type
  TDblItem = class
    str: string;
  end;

var
  di: TDblItem;

{ TListBox }
procedure TListBox.LoadData(const aFileName: TFileName);
var
  i: Integer;
  TS: TStrings;
begin
  TS:= TStringList.Create;
  try
    TS.LoadFromFile(aFileName);
    Items.Clear;
    for i:= 0 to TS.Count-1 do
    begin
      di:= TDblItem.Create;
      di.str:= Copy(TS[i], Pos(DELIM, TS[i])+1, MaxInt);
      AddItem(Copy(TS[i], 1, Pos(DELIM, TS[i])-1), TObject(di));
    end;
  finally
    TS.Free;
  end;
end;

procedure TListBox.SaveData(const aFileName: TFileName);
var
  i: Integer;
  TS: TStrings;
begin
  TS:= TStringList.Create;
  try
    for i:= 0 to Items.Count-1 do
      TS.Add(Items[i] + DELIM + TDBlItem(Items.Objects[i]).str);
    TS.SaveToFile(aFileName);
  finally
    TS.Free;
  end;
end;

// agregar Edit's al ListBox
procedure TForm1.btnAddClick(Sender: TObject);
begin
  di:= TDblItem.Create;
  di.str:= Edit2.Text;
  ListBox1.AddItem(Edit1.Text, TObject(di));
end;

// Guardar datos ListBox al archivo
procedure TForm1.btnSaveClick(Sender: TObject);
begin
  ListBox1.SaveData(FILESTR);
end;

// Cargar datos al ListBox desde el archivo
procedure TForm1.btnLoadClick(Sender: TObject);
begin
  ListBox1.LoadData(FILESTR);
end;

// Mostrar ambos datos 
procedure TForm1.ListBox1Click(Sender: TObject);
begin
  with ListBox1 do
    if ItemIndex <> - 1 then
      ShowMessage(Items[ItemIndex] + '  ' + TDBlItem(Items.Objects[ItemIndex]).str);
end;
...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita