请各位看清楚我问的问题。
虽然我可以用DirectoryListBox.Directory方法来得到当前被打开的目录是什么,但是如果DirectoryListBox控件没有被HighLight的话(可能是点击了别的控件后,蓝色高量不显示了),我想让蓝色高量再回到原来的DirectoryListBox中去(当然要在原来的位置),我写了一个函数来实现:
procedure TFormMain.FindCurrentDir;
var i:Integer;
    LastLayer:String;
begin
  LastLayer:=DirectoryListBox.Directory;
  i:=Pos('\', LastLayer);
  While (i<>0) do
    begin
      LastLayer:=Copy(LastLayer, i+1, Length(LastLayer)-i);
      i:=Pos('\', LastLayer);
    end;
  DirectoryListBox.Selected[DirectoryListBox.Items.IndexOf(LastLayer)]:=True;
  DirectoryListBox.OpenCurrent;
end;思路很简单,大家一看就明白。这样做可以在一定程度上实现,但是如果有一个文件夹和他的一个字文件夹同名,而当前实际打开的又是子文件夹的话,这样做就会有问题了。我总觉得DirectoryListBox控件应该有什么属性或者方法返回当前被打开的那个目录在Items.Strings[]中的下标值,可是找了半天也没有(注意ItemIndex属性并不是!)