Hola Jovalca.
Entiendo, deseas que se vean las dos componentes de texto en el ListBox separadas por el delimitador... Eso lo hace muchísimo mas simple:
Código Delphi
[-]
const
DELIM = '-';
FILESTR = 'C:\Carpeta\ListBox1.txt';
procedure TForm1.btnAddClick(Sender: TObject);
begin
ListBox1.Items.Add(Format('%s-%s',[Edit1.Text, Edit2.Text]))
end;
procedure TForm1.ListBox1Click(Sender: TObject);
begin
with ListBox1 do
if ItemIndex <> -1 then
begin
Edit1.Text:= Copy(Items[ItemIndex],1,Pos(DELIM,Items[ItemIndex])-1);
Edit2.Text:= Copy(Items[ItemIndex],Pos(DELIM,Items[ItemIndex])+1,MaxInt);
end;
end;
procedure TForm1.btnSaveClick(Sender: TObject);
begin
ListBox1.Items.SaveToFile(FILESTR);
end;
procedure TForm1.btnLoadClick(Sender: TObject);
begin
ListBox1.Clear;
ListBox1.Items.LoadFromFile(FILESTR);
end;
Usar las propiedades
Delimiter y
DelimitedText de la clase
TStrings no te va a ayudar en este caso, si tomamos en cuenta el código que mencionas arriba:
Código Delphi
[-]
var
Texto: String;
begin
Texto:= Edit1.Text+'-'+Edit2.Text;
ListBox1.Items.Delimiter:= '-';
ListBox1.Items.DelimitedText:= Texto;
end;
Obtendrías un resultado como este:

Que creo, no es lo que buscas.
Vas a encontrar mucha información útil sobre las clases
TStrings y
TStringLists. En la propia ayuda de Delphi,
aquí y también mediante una búsqueda con el navegador.
De la forma que te indiqué en el primer mensaje, la segunda componente de texto se guarda y obtiene de modos similar, sólo que es transparente para el usuario (no se visualiza la segunda).
Saludos
