我想在 Delphi/Pascal 中为我自己的音乐播放器创建一个播放列表。
我认为拥有一个包含 MP3 文件路径的 TStringList 以及一个包含歌曲名称的 TListBox 将是最好的解决方案。两个列表中的匹配字符串必须位于同一位置。因此,如果用户在 TListBox 中选择第 5 项,我就可以采用 TStringList 中位置 5 处的路径。
这很好用。
但现在我需要一个包含两列的播放列表:“艺术家”和“歌曲标题”。您应该能够按艺术家(升序和降序)以及歌曲标题(升序和降序)对播放列表进行排序 - 当然,按字母顺序排列。
我怎样才能做到这一点?有两个 TStringList 对象 - 一个按艺术家排序,另一个按歌曲标题排序?
最佳答案
我会创建一个至少包含 Artist 和 Title 属性的 TSong 类,以及一个使用正确的排序字段提供 1 个或多个排序方法(可以是通用的)的 TSongList。
当然不需要维护 2 个必须管理的独立 StringList,在排序时保持同步和重新洗牌...
一种实现这一点的廉价方法可能是拥有一个内存数据集,其中包含显示在网格中的艺术家和路径的记录,您可以在不同的列上进行排序。
当前行将直接给出这两个信息。
关于delphi - Delphi中音乐播放器的播放列表/多个数据项列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2259537/