Доброго всем времени суток!
Столкнулся с такой проблемой. Если дерево 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