Hola CaosDeath.
Si tenes declarado un arreglo ej: v:
array[1..n] of string y deseas borrar un dato correlacionado con el del ListBox, podrías obtener el índice del dato actualmente seleccionado con:
ListBox1.ItemIndex y eliminar el contenido de esa posición del array.
Pero no se puede eliminar dicha posición en sí misma puesto que es una estructura estática. Es decir que te quedará un lugar vacío donde elimines un dato.
Me parece mucho más apropiado usar
TstringList en lugar de un array, ya que podrás eliminar items de forma más sencilla.
Un código simple de ejemplo: (agregá a un Form 2 TListBox y un Tbutton )
…
Implementation
var
StList: TstringList;
...
Código:
procedure TForm1.FormCreate(Sender: TObject);
begin
StList:= TStringList.Create;
with StList do
begin
Add('UNO');
Add('DOS');
Add('TRES');
Add('CUATRO')
end;
ListBox1.Items:= StList; // Items de StringList a ListBox
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ix: Integer;
begin
ix:= ListBox1.ItemIndex; // Obtener indice de el item actual
ListBox1.Items.Delete(ix); // Borrar de ListBox
StList.Delete(ix); // Borrar de StringList
ListBox2.Items:= StList;
end;
Saludos.