目前最新的XE2 Update3当换皮肤后TStyleManager.TrySetStyle('Emerald Light Slate');
主窗体的Self.Handle值居然变化了,整的人好晕。这算是BUG么?部门测试代码procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Add('1:' + IntToStr(Self.Handle));
end;procedure TForm1.Button2Click(Sender: TObject);
begin
TStyleManager.TrySetStyle('Emerald Light Slate');
Memo1.Lines.Add('2:' + IntToStr(Self.Handle));
end;procedure TForm1.Button3Click(Sender: TObject);
begin
Memo1.Lines.Add('3:' + IntToStr(Self.Handle));
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Lines.Clear;
end;
主窗体的Self.Handle值居然变化了,整的人好晕。这算是BUG么?部门测试代码procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Add('1:' + IntToStr(Self.Handle));
end;procedure TForm1.Button2Click(Sender: TObject);
begin
TStyleManager.TrySetStyle('Emerald Light Slate');
Memo1.Lines.Add('2:' + IntToStr(Self.Handle));
end;procedure TForm1.Button3Click(Sender: TObject);
begin
Memo1.Lines.Add('3:' + IntToStr(Self.Handle));
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Lines.Clear;
end;
CM_CUSTOMSTYLECHANGED值是:$B000+89 即10进制的45145,不知道是什么消息,窗口会变一下
应该是把地址变了,所以handle也就变了你可以不用皮肤.单独这样测试,它也是变了的:
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Add('1:' + IntToStr(Self.Handle));
end;procedure TForm1.Button5Click(Sender: TObject);
begin
SendMessage(self.Handle, 45145, 0, 0);
Memo1.Lines.Add('2:' + IntToStr(Self.Handle));
end;
纠结中。