Показать сообщение отдельно
  #1  
Старый 06.02.2014, 10:23
BProg BProg вне форума
Прохожий
 
Регистрация: 06.02.2014
Сообщения: 12
Версия Delphi: XE3
Репутация: 10
По умолчанию Дерево TTreeView при смене пользователя

Доброго всем времени суток!
Столкнулся с такой проблемой. Если дерево TTreeView невидимо, после выполнения смены пользователя Windows (не завершение сеанса) к элементам дерева невозможно обратиться программно.
Вот весь код тестового приложения:
Код:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls;

type
  TForm1 = class(TForm)
    TreeView1: TTreeView;
    cbVisible: TCheckBox;
    Button1: TButton;
    procedure cbVisibleClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 i:Integer;
 S:String;
begin
 for i := 0 to TreeView1.Items.Count-1 do
   S:=S+#13+TreeView1.Items[i].Text;
 ShowMessage(S);
end;

procedure TForm1.cbVisibleClick(Sender: TObject);
begin
TreeView1.Visible:=cbVisible.Checked;
end;

end.
Узлы дерева добавлены в визуале.
Делаю так:
1. дерево невидимым (чекбокс)
2. смена пользователя и можно, не меняя, вернуться в эту же учетку
3. кнопка - пустое сообщение

Если сделать то же самое с видимым деревом, то все нормально.
Возможно, как-то Windows память пытается оптимизировать? Не знаю, подскажите, пожалуйста, что м.б.
Спасибо!
TreeTest.rar
Ответить с цитированием