FMX从TCustomXXX继承控件的子控件,无法同时显示的问题
来源:互联网 发布:宁波淘宝网店培训 编辑:程序博客网 时间:2024/06/04 01:34
这个问题,我在盒子发了,也没有满意的结果。
(http://bbs.2ccc.com/topic.asp?topicid=535134)
//Appreance
property Fill;
property Stroke;
property Cornered;
property CornerSize;
property FaceColor;
通过以下2个方法加载Style及得到Style的TRectangle对象
function GetStyleObject: TFmxObject; override;
procedure ApplyStyle; override;
实现代码:
function TMyPanel.GetStyleObject: TFmxObject;
begin
if StyleLookup.IsEmpty then
Result := TStyleManager.GetStyleResource(DefStyleName)
else
inherited;
end;
procedure TMyPanel.ApplyStyle;
begin
inherited;
if FindStyleResource<TRectangle>(DefStyleName, FAppreance) then
begin
if FAppreance <> nil then
begin
FAppreance.Fill.Assign(FFill);
FAppreance.Stroke.Assign(FStroke);
if FCornered then
FAppreance.Corners := [TCorner.TopLeft, TCorner.TopRight, TCorner.BottomLeft, TCorner.BottomRight]
else
FAppreance.Corners := [];
FAppreance.CornerType := TCornerType.Round;
FAppreance.XRadius := FCornerSize;
FAppreance.YRadius := FCornerSize;
FAppreance.Align := TAlignLayout.Client;
FAppreance.Anchors := [TAnchorKind.akLeft, TAnchorKind.akTop];
end;
end;
end;
FAppreance就是Style中的Rectangle
但是,有一个大问题,这样的控件当设置了Parent时,只能显示最后创建的一个,前面的全部不显示,不管其Parent是不是一样的。估计是丢失了Style,所以对象存在,但是显示不了。
简单跟踪了下,在设置控件Parent,发生了许多事,看的晕乎乎。
就是创建多个Panel时,为什么只显示最后一个Panel!!!!!
这几天又在折腾这个问题,现在DELPHI帮助里的 FMX控件开发指导,还是DELPHIXE5还是XE6时候的帮助,无语了,都不一样了,还误导开发者。
上面代码的GetStyleObject方法的写法是不对的
因为是用自己的Style资源,所以还是得明确从Res文件加载,
function TJKCustomPanelButton.GetStyleObject: TFmxObject;
begin
if StyleLookup = '' then
begin
//Result := TStyleManager.GetStyleResource(DefJkPanelButtonStyleName);
Result := TStyleStreaming.LoadFromResource(HInstance, DefJkPanelButtonStyleName, RT_RCDATA);
end
else
inherited GetStyleObject;
end;
这样就可以了,深层原因就不知道了,这里的代码转的厉害,看的晕呼呼。
阅读全文
0 0
- FMX从TCustomXXX继承控件的子控件,无法同时显示的问题
- delphi FMX控件的常见属性
- ACTIVEX控件无法显示的问题
- 子控件在父控件上的显示问题
- 控件无法显示的原因
- android关于Listview中定义了子控件,子控件和item同时获取焦点的问题
- 任意改变FMX的TPanel控件的颜色
- LinearLayout的layout_weight问题导致手机无法显示全部控件
- WebBrowser无法显示招商银行密码输入控件的问题
- ASP.NET 的自定义控件>显示继承控件图形的问题
- ASP.NET 的自定义控件>显示继承控件图形的问题
- 容器内的子控件居中显示
- listctrl控件的显示问题
- iOS控件无法显示的缘由总结
- UI控件无法显示的原因小结
- Silverlight 自定义控件的继承问题1
- Silverlight 自定义控件的继承问题2
- 控件篇 - 子控件在StackPanel里的居中问题
- [PAT乙级]1057. 数零壹(20)
- 代理模式 Prototype
- Codeforces Round #426 (Div. 2) B. The Festive Evening
- bzoj P4870 [Shoi2017]组合数问题
- 从Aop代理的对象中获取源对象
- FMX从TCustomXXX继承控件的子控件,无法同时显示的问题
- ssm之mybatis(动态sql)
- CSS背景的相关属性
- ios之第一个图形化界面
- Linux---lnmp之nginx
- python2和pyhton3区别
- Codeforces Round #426 (Div. 2) A B C
- DB2 学习笔记 ——数据库管理
- NOIP2016day2t2 蚯蚓