2011-11-27 16 views
6

Khi tôi mở thư mục có OpenDialog, làm cách nào để lọc thư mục để người dùng chỉ có thể xem các tệp nhất định (ví dụ: Stringgrid, * .sg) và các tệp có bất kỳ tiện ích mở rộng nào khác không xuất hiện trong cửa sổ hộp thoại?Làm cách nào để chỉ hiển thị một số tiện ích mở rộng tệp nhất định trong hộp thoại mở tệp?

+2

Không, bạn không thể thực hiện việc thứ hai (lọc tệp dựa trên thứ gì đó ngoài tiện ích mở rộng) nếu chúng ở trong cùng một thư mục. Nhưng giải pháp phù hợp là cung cấp cho mỗi người dùng thư mục riêng của họ để lưu trữ tệp và sử dụng quyền kiểm soát truy cập (quyền thư mục) để ngăn người dùng nhìn thấy tệp của nhau. –

+1

Tôi đã xóa câu hỏi thứ hai của bạn vì câu hỏi này quá khác so với câu hỏi gốc. Vui lòng đặt câu hỏi khác của bạn trong một bài đăng riêng biệt. –

Trả lời

9

Đặt thuộc tính OpenDialog.Filter vào bộ lọc tệp bạn muốn. Bạn có thể làm điều này trong Object Inspector; nhấp vào thuộc tính Filter và bạn sẽ thấy một nút nhỏ xuất hiện ở cạnh phải với .... Nhấp vào đó và bạn sẽ thấy một hộp thoại xuất hiện. Phía bên trái là mô tả của tệp (ví dụ: Excel files (*.xls)). Phía bên phải là bộ lọc bạn muốn sử dụng, như trong *.xls.

OpenDialog Filter Dialog

Bạn cũng có thể thiết lập nó trong mã trước khi hiển thị hộp thoại của bạn:

OpenDialog1.Filter := `Excel files (*.xls)|*.xls`; 

Tất nhiên, thay thế các công cụ Excel với mô tả bất kỳ và mặt nạ bạn muốn sử dụng.

2

Các thuộc tính FilterFilterIndex được sử dụng để chỉ định (các) tiện ích tệp sẽ hiển thị (lưu ý rằng người dùng có thể ghi đè bộ lọc theo cách thủ công).

Sự kiện OnIncludeItem được sử dụng để chọn lọc/không cho phép các tệp/thư mục riêng lẻ được liệt kê trong hộp thoại.

Các vấn đề liên quan