VCL Component Incompatibilities

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #33470
    jonesa
    Participant

    Hello,

    So I recently converted a large application to use Ts components, and ran into a handful of minor issues that I wanted to see if fixes were planned any time soon, or if I was expected to fix them myself.

    The biggest issue I ran into was the lack of a TsLabeledEdit. Yes, I know that most Ts components have an attached label, however the exposed label related properties in TsEdit do not match TLabeledEdit at all, so I would have to change a ton of code which is written to work with labeled edits. Further, some of the capabilities are completely missing, such as many of the label position options (which I use).

    TsPanel seems to have an issue related to bevel. With TPanel, if you set all the bevels to None, you get a flat, background color box. A TsPanel with the same property still draws as though it is set to bvRaised, and thus we get the border on it. I tried setting all combinations of BevelEdges, BevelInner, BevelKind, BevelOuter, BevelWidth, and BorderStyle to no avail. Interestingly, a TPanel with bvNone which is taken over by a skin provider draws correctly. This has shown up because we use panels as tools to support using Align, and now we are getting all sorts of funny boxes on our complicated forms. (I have a hackish code fix for this one if you care)

    Next, TsRadioGroup seems to have an issue with the radio item placement when the box is short. If I make a radio group with height 30, add two items, and set it to two columns, I get bad results (items hang off the buttom). The TRadioGroup with identical properties draws correctly, further the TRadioGroup skinned using a skin provider ALSO draws correctly, so it is something unique to the TsRadioGroup implementation.
    [attachment=3646:RadioGroupPosition.png]

    Next, TsListBox is missing the ScrollWidth property.

    Finally, TsComboBox is missing the AutoDropDown property.

    Are any of these known issues? What is the chances of these getting fixed any time soon?

    #41357
    Support
    Keymaster

    QUOTE (jonesa @ Dec 22 2009, 06:42 AM)
    The biggest issue I ran into was the lack of a TsLabeledEdit. Yes, I know that most Ts components have an attached label, however the exposed label related properties in TsEdit do not match TLabeledEdit at all, so I would have to change a ton of code which is written to work with labeled edits. Further, some of the capabilities are completely missing, such as many of the label position options (which I use).


    Maybe you can keep using of standard TLabeledEdit control? This control may be skinned without any problems as I know..

    QUOTE
    TsPanel seems to have an issue related to bevel. With TPanel, if you set all the bevels to None, you get a flat, background color box. A TsPanel with the same property still draws as though it is set to bvRaised, and thus we get the border on it. I tried setting all combinations of BevelEdges, BevelInner, BevelKind, BevelOuter, BevelWidth, and BorderStyle to no avail. Interestingly, a TPanel with bvNone which is taken over by a skin provider draws correctly. This has shown up because we use panels as tools to support using Align, and now we are getting all sorts of funny boxes on our complicated forms. (I have a hackish code fix for this one if you care)


    Kind of TsPanel may be changed by SkinData.SkinSection property. Main skinsections for panels – PANEL, PANEL_LOW, GROUPBOX, MENUITEM (fully transparent in this case)

    QUOTE
    Next, TsRadioGroup seems to have an issue with the radio item placement when the box is short. If I make a radio group with height 30, add two items, and set it to two columns, I get bad results (items hang off the buttom). The TRadioGroup with identical properties draws correctly, further the TRadioGroup skinned using a skin provider ALSO draws correctly, so it is something unique to the TsRadioGroup implementation.


    Aligning of items will be improved in the next release.

    QUOTE
    Next, TsListBox is missing the ScrollWidth property.
    Finally, TsComboBox is missing the AutoDropDown property.


    These two properties will be available in the next release.

    #41363
    jonesa
    Participant

    Thanks for the workarounds. I just wanted to let you know about various things I am running into while converting my application… I really prefer to use the Ts components so I can see the appearance better in design mode, so I still think it would be valuable to have a TsLabeledEdit.

    As for TsPanel, I ended up patching the code to look for BevelInner=bvNone and BevelOuter=bvNone and just set border max width to 0 (instead of calling SkinBorderMaxWidth), this works for me, and seems like a reasonable thing to do for increased compatibility with VCL.

    After all, the FAQ does say “All items in the package are based on standard items, that is they possess absolutely identical properties and methods. Therefore there is no need of code change.”

    I really think you did an outstanding job on these components, I am just trying to suggest ways to improve them.

Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.