У меня есть интерфейс, такой как проводник файлов с 2 VirtualStringTree, сначала для папок, а затем для файлов из этих папок. На правой панели мне нужно показать информацию о выбранном файле или папке. Это скриншот для примера:
Хорошо, это мой код для обработки выбранного файла или папки:
procedure OnFoldersFocusChange();
begin
// Show the selected Folder info on panel
end;
procedure OnFilesFocusChange();
begin
// Show the selected File info on panel
end;
Это работает, но когда мы выбрали папку и выбранный файл на обоих VitrualStringTree, что, когда мы переключаемся между этим файлом и папкой, ничего не происходит, OnFocusChange
не выполняется, и я не буду знать, на что сейчас нацелено: папка или файл.
Вторая итерация обрабатывает OnEnter
события:
procedure OnFoldersEnter();
begin
OnFoldersFocusChange();
end;
procedure OnFilesEnter();
begin
OnFilesFocusChange();
end;
Хорошо, теперь все работает нормально, но когда мы сконцентрировались на элементе управления файлами, и я нажимаю на элементе управления папками, а не на сосредоточенная папка, чем у меня есть 2 исполнения OnFolderFocusChange
. Первый будет выполнен в OnFolderEnter
для ранее выделенной папки, а второй - для новой выделенной папки.
Что мне следует изменить, чтобы избежать выполнения для ранее выделенной папки?