Lob*_*uno 5 delphi skinning vcl-styles
使用Delphi XE2,您可以选择将自定义样式(外观)嵌入到VCL项目中.
一切正常.现在我将一些表单放入一个动态显示的分隔dll中.
当然那些没有剥皮.我该如何纠正?
我想我必须以某种方式打电话给TVisualStyle,但没有运气.
主人:
procedure TForm1.Button1Click(Sender: TObject);
var
l: THandle;
p: procedure (const h: THandle); stdcall;
begin
l:= LoadLibrary('project1.dll');
if l > 0 then
begin
@p:= GetProcAddress(l,'ShowIt');
p(Application.Handle);
FreeLibrary(l);
end;
end;
Run Code Online (Sandbox Code Playgroud)
dll:
procedure ShowIt(const h: THandle);stdcall;
var
form: TForm;
b: TButton;
han: THandle;
begin
han:= Application.Handle;
Application.Handle:= h;
form :=Tform.Create(Application);
b:= TButton.Create(form);
b.Parent:= form;
b.Caption:= 'ytes';
b.Left:= 2;
b.Top:= 2;
form.ShowModal;
form.Release;
Application.Handle:= han;
end;
exports ShowIt ;
begin
end.
Run Code Online (Sandbox Code Playgroud)
很标准的东西.现在,要使dll表单使用主机的样式主题,究竟必须做些什么?
Dav*_*nan 14
您有两个不同的VCL实例.您已StyleServices在可执行文件所拥有的实例中设置样式,但您的DLL并不知道它.您可以通过以下方式解决此问题
StyleServices实例.| 归档时间: |
|
| 查看次数: |
2548 次 |
| 最近记录: |