Habrás de tener cuidado en como usas ExtractFileName, porque si lo usas al momento de añadir el archivo al ListBox entonces pierdes la ruta necesaria para abrir postriormente el archivo.
Una solución rápida podría ser poner ListBox.Style en lbOwnerDrawFixed para que tú mismo dibujes los elementos en el evento OnDrawItem:
Código Delphi
[-]
procedure TForm1.ListBox2DrawItem
(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
LB: TListBox;
S: String;
begin
LB := (Control as TListBox);
S := ExtractFileName(LB.Items[Index]);
LB.Canvas.FillRect(Rect);
LB.Canvas.TextOut(Rect.Left + 2, Rect.Top, S);
end;
De esta manera, en el ListBox sólo muestras el nombre del archivo, pero la ruta completa sigue guardada.
// Saludos