Конференция "Начинающим" » Как передать фокус компоненту? [XP]
 
  • Drowsy © (24.03.17 13:00) [0]
    На форме PageControl. На одной из страниц дерево TreeObjects и кнопка. Кликаю по кнопке

     if Assigned(TreeObjects) then
     begin
       TreeObjects.SetFocus;
       Application.MainForm.ActiveControl := TreeObjects;
     end;



    А фокус на дерево не передаётся. Почему?
  • Игорь Шевченко © (24.03.17 14:36) [1]
    Возможно, передается, но ты этого не видишь
  • Drowsy © (24.03.17 15:09) [2]
    Узел, помеченный, как Selected, при передаче фокуса не выделяется. Если мышкой щёлкнуть в области дерева, то помеченный узел выделяется.
  • rrrrr © (24.03.17 15:37) [3]
    hideselection
  • Drowsy © (24.03.17 15:48) [4]
    HideSelection - false.  Помеченный узел сереньким выделен, но фокус не получает.
  • Drowsy © (24.03.17 15:52) [5]
    Жму на кнопку. Фокус должен перейти на дерево, Но ничего не происходит. Нажимаю клавишу вверх или вниз, фокус появляется на ToolButton этой страницы.
  • Drowsy © (24.03.17 15:53) [6]
    Только следующее нажатие вверх или вниз фокусирует узел дерева.
  • rrrrr © (24.03.17 16:09) [7]
    у тебя ошибка в программе.

    все там работает как надо
  • Drowsy © (24.03.17 16:51) [8]
    А вот так работает.
    if Assigned(TreeObjects) then
    begin
      if Assigned(TreeObjects.Parent) then
      begin
        TreeObjects.Parent.SetFocus;
        Application.MainForm.ActiveControl := TreeObjects.Parent;
      end;

      TreeObjects.SetFocus;
      Application.MainForm.ActiveControl := TreeObjects;
    end;

    Хммм..
  • sniknik © (24.03.17 18:27) [9]
    в чем тут смысл?
    > Application.MainForm.ActiveControl := TreeObjects;
 
Конференция "Начинающим" » Как передать фокус компоненту? [XP]
Есть новые Нет новых   [118582   +31][b:0][p:0.001]