- This topic has 3 replies, 2 voices, and was last updated 10 years, 2 months ago by HeDiBo.
-
AuthorPosts
-
July 30, 2014 at 12:10 pm #36246HeDiBoParticipant
The DevExpr dxLayoutControl functions a bit like a panel: it can be aligned to parents and to other layout controls. But above all it serves as an alignment aid for other controls (very nice!). In AC the dxLayoutControl is NOT SKINNED. Example:
[attachment=6834:DevExprLayoutControl.jpg]
This is the project: [attachment=6836:DevExprLayoutControl.zip]
Even if you don't use TdxLayoutControl, you will encounter it in DevExpr dialogs. This is an example of it:
[attachment=6844:DevExprCustGridForm.jpg]
I think this can be solved by allowing transparent controls in the ThirdParty list. Adding TdxLayoutControl manually to that list and selecting 'Checkbox” almost does the job, except for the checkbox that's drawn then. Maybe the list of controls to choose from in the substitution list should also contain “FullyTransparent” as one of the choices (a special choice next to “NativePaint”).
August 17, 2014 at 8:31 am #52278SupportKeymasterYou can add this type as 'Panel' and change used SkinSection:
Code:procedure TForm8.sSkinProvider1SkinItemEx(Item: TComponent; var CanBeAdded: Boolean; SkinParams: PacSkinParams);
begin
if Item is TdxLayoutControl then
SkinParams.SkinSection := 'TRANSPARENT';
end;August 17, 2014 at 9:55 am #52285HeDiBoParticipant'Support' wrote:You can add this type as 'Panel' and change used SkinSection:
Code:procedure TForm8.sSkinProvider1SkinItemEx(Item: TComponent; var CanBeAdded: Boolean; SkinParams: PacSkinParams);
begin
if Item is TdxLayoutControl then
SkinParams.SkinSection := 'TRANSPARENT';
end;I hope your suggestion is only for a temporary solution. It will not work at design time.
A permanent solution may be found in overriding this function in cxLookAndFeelPainters:
Code:function LayoutControlEmptyAreaColor: TColor; virtual;or overriding this one:
Code:procedure DrawLayoutControlBackground(ACanvas: TcxCanvas; const R: TRect); virtual;I'm not sure which is best.
Thanks!
August 17, 2014 at 10:19 am #52289HeDiBoParticipantThe solution happens to be much simpler:
Add TdxLayoutControl to the ThirdParty components and set it as TPanel if you want a skinned layout control. Set dxLayoutControl1.ParentBackground to True if you want transparency.
Sorry for all the fuss :blush:
Problem solved :a3:
-
AuthorPosts
- You must be logged in to reply to this topic.