TVirtualStringTree: OnEnter и OnFocusChange - PullRequest
1 голос
/ 14 февраля 2020

У меня есть интерфейс, такой как проводник файлов с 2 VirtualStringTree, сначала для папок, а затем для файлов из этих папок. На правой панели мне нужно показать информацию о выбранном файле или папке. Это скриншот для примера:

VirtualStringTree panels

Хорошо, это мой код для обработки выбранного файла или папки:

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 для ранее выделенной папки, а второй - для новой выделенной папки.

Что мне следует изменить, чтобы избежать выполнения для ранее выделенной папки?

...