Form.Hide issues with AlphaSkins v8.17 and v8.18

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #35649
    IPSteven
    Participant

    I noticed a problem in an application that I was working on – problem does not exist with AlphaSkins v8.16 or earlier, only with versions 8.17 and 8.18.

    I built a demo application to demonstrate the problem.

    The demo application uses 3 speedbuttons to load sub-forms onto a pagecontrol tab.

    Subform1 is loaded by default.

    The image below is from then demo application – built using AlphaSkins v8.16.

    as8_18formhide_ok1.png

    Clicking on buttons hides current subform and loads/shows alternate sub-forms as show below.

    as8_18formhide_ok2.png

    as8_18formhide_ok3.png

    Below are images from same demo application but this time built using AlphaSkins v8.18.

    Notice that when the Form2 button is clicked (Form2 button is in down state) that it looks like subform2 failed to load.

    as8_18formhide_bad1.png

    But when I move the demo app I see that form2 is hidden beneath subform1.

    Subform1 is not only not hiding – it is a 'dead' form!

    I'm calling it a dead form because it is not clickable (not active) and it fails the assigned(formX) test – see code below.

    as8_18formhide_bad2.png

    more dead forms created…

    as8_18formhide_bad3.png

    and those dead forms create memory leaks.

    as8_18formhide_bad4.png

    Here is what the code looks like for the btnForm2 click event:

    Code:
    procedure TMain.btnLaunchForm2Click(Sender: TObject);
    begin
    if tabMMTools.Tag = Ord(csfForm2) then //check what form# is loaded
    Exit;

    form1.Hide;
    if Assigned(form3) then
    form3.Hide;

    if Assigned(form2) then begin
    form2.Show;
    tabMMTools.Tag := Ord(csfForm2); //set form# flag
    exit;
    end;

    // form has not been create yet – create & load
    //setting tab in pagecontrol as parent
    Application.CreateForm(Tform2, form2);
    form2.Parent := tabMMTools;
    form2.Align := alClient;
    form2.BorderStyle := bsNone;

    Application.ProcessMessages;
    form2.Show;

    tabMMTools.Tag := Ord(csfForm2); //set form# flag
    end;

    Here is a link to demo code and 2 demo EXEs (one built with A.S.v8.16 and the other built with 8.18)

    [attachment=6223:as8_16formhideProb.rar]

    #50199
    Support
    Keymaster

    Hello IPSteven, thanks for this excellent report :a3:

    The issue will be solved in the nearest release.

    #50204
    Hamilton
    Participant

    +1 . This issue affects every docked form. I'm not calling Form.Hide like the sample, instead I'm calling Form.Close with a caFree action in the OnClose event, yet the same behaviour is observed. Fingers crossed for a fast fix, until then I'm going back to 8.16.

    Regards,

    Hamilton

    #50205
    Support
    Keymaster

    I can give the patched file already, if needed. 🙂

    #38391
    Hamilton
    Participant

    Nice 🙂 Pls email me the file or post it here and I'll find it. Ty Serge.

    #38386
    Support
    Keymaster

    Sent by mail :).

    #38357
    Hamilton
    Participant

    Thx for the file, I notice this is also fixed in v819.

    Cheers,

    Hamilton

    #50233
    IPSteven
    Participant

    Verified as fixed in 8.19,

    Thanks

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