Một nền tảng nhỏ của chương trình:
Chương trình sử dụng giao diện tab để làm việc trên nhiều tệp cùng một lúc.
Tôi đang cố gắng thay đổi thư mục OpenDialog nên mỗi lần tôi gọi mở tệp sẽ hiển thị thư mục của tệp tôi đang làm, nhưng ngay cả khi tôi đặt InitialDir
vào đường dẫn của tệp, nó luôn hiển thị lần mở cuối cùng thư mục tệp, không phải thư mục tôi đang đặt.
tôi thử như sau:Thay đổi thư mục của Delphi OpenDialog
if Length(CurrentFileName) > 0 then
begin
OpenFileDialog.InitialDir :='';
SetCurrentDirectory(PChar(CurrentFileName));
OpenFileDialog.InitialDir := ExtractFileDir(CurrentFileName);
end;
if OpenFileDialog.Execute then
...
đâu CurrentFileName
có đường dẫn đầy đủ với tên tập tin của dòng tab đã mở tập tin. Nhưng không may mắn.
Có cách nào để đạt được điều này không?
Vì vậy, ví dụ:
tab1
có c:\mydir\file.txt
mở
tab2
có d:\someotherdir\somefile.txt
mở
Nếu tôi chuyển sang tab1
và gọi hàm mở tôi các OpenDialog
nên chỉ cho tôi nội dung của c:\mydir\
Tôi đang sử dụng Delphi 7. Bất kỳ trợ giúp được đánh giá cao.
Lạ lùng thay, mã của bạn ở trên hoạt động tốt đối với tôi (Delphi 2009, Win 7). –
Tôi sử dụng borland C++ tương tự ... bạn quên thêm "\\" vào cuối InitialDir (đôi khi nó hoạt động mà không có nó nhưng không phải là allways), và đôi khi cũng giúp gọi OpenDialog.Update() – Spektre