特别感谢】猫叔捐助SSD硬盘
VCL 是经典,FMX 是新生,新生事物总会带来一些好玩新奇的东西。舍弃经典是浪费,不了解新生事物是等死,那么我们来一个二合一双剑合壁又如何呢?
要双剑合壁,就得投些机,取些巧。由于 Delphi / C++ Builder 不支持直接创建一个 VCL+FMX 的合体应用,所以我们要分别创建一个 VCL 和 FMX 的应用程序,其中一个我们做为主窗口。
好了, 我们先创建一个新的 VCL 工程,命名为 vclprj,然后在其上放置一个按钮,效果如下:
接下来,我们再添加个空白的 FMX 工程,命名为 fmxprj,然后,我们在新打开的 FMX 窗体上随便放点啥,这里我放了一个 TLabel,然后旋转了45°,然后随便添加了一个TFloatAnimation。效果如下(这个窗体名字为 Form4):
好了,我们切回 vclprj,然后双击按钮,然后在 implementation 部分写入 uses FMX窗体所在单元,我的是 unit4.pas,所以就是 uses unit4;
接下来就象正常的编码一样,直接创建窗体并显示出来就好了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
var
FmxAppWnd
:
HWND
=
0
;
procedure
HideFMXAppWnd
;
begin
if
FmxAppWnd
=
0
then
FmxAppWnd
:=
Winapi
.
Windows
.
FindWindow
(
'TFMAppClass'
,
nil
)
;
if
(
FmxAppWnd
<>
0
)
and
(
Winapi
.
Windows
.
IsWindowVisible
(
FmxAppWnd
)
)
then
ShowWindow
(
FmxAppWnd
,
SW_HIDE
)
;
end
;
procedure
TForm3
.
Button1Click
(
Sender
:
TObject
)
;
var
F
:
TForm4
;
begin
F
:=
TForm4
.
Create
(
nil
)
;
HideFMXAppWnd
;
F
.
ShowModal
;
F
.
DisposeOf
;
end
;
|