Problems with VirtualStringTree (SoftGem component)

Viewing 19 posts - 1 through 19 (of 19 total)
  • Author
    Posts
  • #35496
    Kujo
    Participant

    Hello,

    I have some problems with VirtualTreeView component (all versions) and AC (all versions).

    I added “VirtualStringTree” to the ThirdPartyList and the SkinProvider to the form.

    Attached you find an image: on the left there is the component not skinned and on right the component skinned.

    Point 1: if not skinned, all is ok, but when skinned, the “filler” header column is not drawn.

    Point 2: when skinned, if you resize a column, a bottom line in the header is visible.

    I updated VirtualTreeView to the last version (5.1.0) because now it is compatible with VCL style of Delphi XE2, hoping to solve the problem:

    Point 1: still present.

    Point 2 is solved.

    BUT there is a new big problem: the component flickers continually and is difficult to resize the columns (like the component is costantly redrawn). With some skins the flicker is more visible than others skins but is always difficult to resize the columns.

    I'm using:

    Windows 7 64 bit

    AC 8.10

    RAD Studio XE2 with all the updates installed.

    Thanks.

    #49538
    mol
    Participant
    'Kujo' wrote:
    …there is a new big problem: the component flickers continually

    How do you fill the tree? Are you refreshing the nodes in a loop?

    #49539
    Kujo
    Participant
    'mol' wrote:

    How do you fill the tree? Are you refreshing the nodes in a loop?

    No, I don't have still written any code, simply placed the VT on a form, created the columns, enabled the flag for show the header and the gridextension

    #49540
    mol
    Participant

    Hm, I use VST extensively and I've never had any problems with it. Have you tried an earlier version of VST yet?

    #49541
    Kujo
    Participant
    'mol' wrote:

    Hm, I use VST extensively and I've never had any problems with it. Have you tried an earlier version of VST yet?

    I tried version 4.87, some versions downloaded from GoogleCode (up to 5.0.1) but the problems 1 and 2 were always present.

    The costantly redraw problem is present only in the last version.

    I also tried to disable the “enable runtime themes” option of Delphi, other installations of Delphi (my collegues, always XE2), but nothing to do.

    If I instead use the “VCL Styles” feature, all is ok (as you can see in the attached image).

    P.S. I have the problem “1” also with TsHeaderControl but here I found the problem: I dont know why, but when I put it on the form, the SkinSection property is automatically sets as CHECKBOX. If I change it to COLHEADER the component works fine. Maybe the problem is the same but how can I change the SkinSection property of the VST?

    #49542
    mol
    Participant

    Try the attached demo. It doesn't show the behavior you've described.

    Delphi 2010 Pro

    Vista Home Premium 32bit

    VST version 4.8.6

    Latest AlphaControls

    #49549
    Kujo
    Participant
    'mol' wrote:

    Try the attached demo. It doesn't show the behavior you've described.

    Delphi 2010 Pro

    Vista Home Premium 32bit

    VST version 4.8.6

    Latest AlphaControls

    I tried your demo and:

    • Your EXE file: no problem (but you have the “hoAutoResize” flag enabled).
    • Compiled with VT 5.0.1, no problem BUT ONLY if I leave enabled the Header's hoAutoResize flag. If I disable this flag, the problems “1” and “2” are still visible.
    • If I compile with VT 5.1.0, all the problems are visible and also the flicker problem

    I am not sure if the problems “1” and “2” are related to the SkinSection applied to the header, but I have the same problem with TsHeaderControl component that automatically sets “CHECKBOX” as default instead to “COLHEADER”: if I leave “CHECKBOX” the effect is the same, but I don't have the possibility to try with VT because I don't know how change this setting in VT.

    I also tried in two other differents computers: WinXP + Delphi 7 and WinXP + Delphi 2007, but the problems (including TsHeaderControl) are always the same.

    I can understand a computer (maybe something is wrong), but three versions of Delphi in three differents computers ???

    Serge, what do you think?

    #49576
    mol
    Participant

    Interesting. If I recall correctly there had been problems with flickering before, though not in combination with AlphaControls. It had to do with the refresh of the application hint. Didn't the VST people just recently make changes to the Application.Hint call? Maybe worth to check.

    #49578
    Support
    Keymaster

    Kujo, can you give a link for downloading of files, required for installing of latest VirtualStringTree?

    #49579
    mol
    Participant
    #49581
    Support
    Keymaster

    Thank you! This issue will be solved in the nearest release, I think.

    #49611
    Kujo
    Participant
    'Support' wrote:

    Thank you! This issue will be solved in the nearest release, I think.

    I tried with AC 8.11 and VT 5.1.0 and here there are my results:

    • flicker problem: solved
    • skinning problem: still present (please check attached image)

    For all examples I used three columns and:

    Header.Options.hoVisible := True

    TreeOptions.MiscOptions.toGridExtension := True

    TreeOptions.PaintOptions.toThemeAware := False (but you can also set it to True)

    Fig. 1 and Fig.2:

    Header.Options.hoAutoResize := False

    Fig.3 and Fig.4:

    Header.Options.hoAutoResize := True

    Header.Options.AutoSizeIndex := 2 (but you can set also other columns)

    As you can see, the “filler” header to the right of the last column is not skinned. Also are not skinned the sections over and under the vertical scrollbar.

    The same skinning problems are presents with all versions of AC and with all versions of VT.

    How can I solve this problem?

    P.S. The same problems are also visible with TEasyListview from MustangPeak.

    #49618
    Support
    Keymaster

    I need a time for researching it. I hope, this issue will be solved in the version 8.13

    #49621
    mol
    Participant
    'Kujo' wrote:
    The same problems are also visible with TEasyListview from MustangPeak.

    In fact, this problem is visible in all Mustangpeak components; including VirtualExplorerEasyListview where the header isn't skinned at all and you end up with a stack overflow when closing the program.

    The debugger stops with a message saying “…exception class EOutOfResources with message 'Invalid window handle' “, and points to line 184 of sVclUtils.pas

    #49726
    Kujo
    Participant
    'Support' wrote:

    I need a time for researching it. I hope, this issue will be solved in the version 8.13

    Hello,

    I checked the version 8.13 but the skinning problems are still present.

    In addition, why TsHeaderControl sets “CHECKBOX” and not “COLHEADER” as default?

    Thanks.

    #49733
    Kujo
    Participant
    'Kujo' wrote:

    Hello,

    I checked the version 8.13 but the skinning problems are still present.

    In addition, why TsHeaderControl sets “CHECKBOX” and not “COLHEADER” as default?

    Thanks.

    Same problems with version 8.14, there is a hope to solve it ?

    #49763
    Support
    Keymaster

    Drawing of headers can't be changed because it's normal drawing for this component when XPManifest is not used. I'm sorry.

    A RightBottom corner painting will be improved soon.

    #49768
    Kujo
    Participant
    'Support' wrote:

    Drawing of headers can't be changed because it's normal drawing for this component when XPManifest is not used. I'm sorry.

    A RightBottom corner painting will be improved soon.

    Ok,

    thank you for your answer. I will use the AutoSize flag in order to hide the unskinned portion of the header.

    About my doubt relative to TsHeaderControl: is normal that the default SkinSection is “CHECKBOX” and not “COLHEADER” ?

    #49816
    Support
    Keymaster

    This SkinSection used for drawing of all control (background and borders). For a header drawing used the 'COLHEADER' section.

    So, this component background is fully transparent by defining, because the 'CHECKBOX' section used.

    And headers are drawn on this control with using the 'COLHEADER' section.

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