SzakiLaci

Forum Replies Created

Viewing 20 posts - 21 through 40 (of 149 total)
  • Author
    Posts
  • in reply to: Memory Leaks in AC 14.27 #59746
    SzakiLaci
    Participant
      'Support' wrote:

      SzakiLaci, I think, your memory leak is not linked with PageControl, reason is same as in a leak reported by HeDiBo (ImageList with disabled UseCache property).

      I think, this memory leak is removed already, changes will be available in the nearest release.

      Upgraded to v14.28

      Memory leak is STILL THERE! Also in the DEMO app I've uploaded for you.

      To reproduce the problem you can simply:

      1.) move the mouse up & down & up & down …. over the pagecontrol's TABs

      or

      2.) scroll the whole window up & down

      in reply to: Memory Leaks in AC 14.27 #59742
      SzakiLaci
      Participant

        [attachment=9411:PageControl_MemLeak.zip]

        move mouse up and down many times on the tabs, so they highlight for a moment.

        in reply to: How to set close/negative icon spacing? #59740
        SzakiLaci
        Participant
          'Support' wrote:

          Which type of button do you use here? TsSpeedButton?

          TsBitBtn.

          in reply to: Memory Leaks in AC 14.27 #59739
          SzakiLaci
          Participant
            'Support' wrote:

            I'm sorry Dick, my message was addressed to SzakiLaci.

            I can send you new files where your reported memory leak is removed (by PM).

            Thanks for the reply!

            Yes, I'm using FastMM4 too.

            It is strongly recommended for Delphi7.

            But program's memory usage is increasing too, (measuring with Process Hacker), so it's definitely not a “false alarm” of FastMM4 debugger.

            I'll create a DEMO.

            in reply to: Memory Leaks in AC 14.27 #59733
            SzakiLaci
            Participant
              'HeDiBo' wrote:

              may create a TBrush which is not freed when rShadowBmp is freed

              Do you think this can affect sPageControl component too?

              Currently it has a huge memory leak too >> whenever hoovering the mouse over TABs, it creates a new BMP + Brush +++ never freed.

              (3-600 of them pro minute, if someone is actively moving the mouse)

              It completely ruined my APP, users calling me every day…

              Reported the problem a week ago, no fix yet.

              (WTF is happening to Serge lately ???)

              in reply to: Form not scaling #59732
              SzakiLaci
              Participant
                'Stephane wrote:

                I'm trying to figure out why a form in my app does not scale.

                Can you tell my where the scaling occurs in AlphaSkins libraries?

                Are you using it the default delphi-way? (OnShow event)

                For me, this works:

                Code:
                type
                Form1 = class(TForm)

                private
                already_scaled_once: Boolean;
                end;

                procedure TForm1.create(Sender: TObject);
                begin
                already_scaled_once := False;
                end;

                procedure TForm1.FormShow(Sender: TObject);
                if not already_scaled_once then begin
                already_scaled_once := True;
                ScaleBy(200,100);
                end;
                end;

                (In this case it works even if the Skin turned OFF.)

                in reply to: TsGroupBox painting problem #59723
                SzakiLaci
                Participant

                  Here is a DEMO to simulate both cases:

                  [attachment=9403:TGroupBox_paint.zip]

                  in reply to: MainMenu font size runtime no effect (skinned) #59713
                  SzakiLaci
                  Participant
                    'SzakiLaci' wrote:

                    This is what I ment by: “it should draw the upper-part of bigger fonts on top of the title bar.” >>

                    [attachment=9366:submenu_override.jpg]

                    Any progress on Overdrawing on the outside elements? (Title bar)

                    ________

                    Also I have noticed, the skinned draw happens AFTER normal menu is drawn first.

                    Since I'm using a 10+ year old (XP) laptop to test speed, I can visually SEE the update happens 2x. (1th: normal menu is drawn, after that 2th skinned menu is overdrawn)

                    in reply to: MainMenu font size runtime no effect (skinned) #59712
                    SzakiLaci
                    Participant
                      'Support' wrote:

                      Try this code, it's enough, I think:

                      Code:
                      var

                      N31.Caption := N31.Caption + ' ';
                      end;

                      CustomFont is not required, maybe.

                      No, sadly it does NOT work. That was the first thing I've tried.

                      As I've wrote before: I'm over ca. 30 different scenarios, spent 1.5 days with it.

                      CustomFont IS required too!

                      … except you have changed something in your code at 14.26 >> 14.27 ?

                      in reply to: CustomColor painting anomalies #59711
                      SzakiLaci
                      Participant
                        'Support' wrote:

                        You can try to change the SkinData.SkinSection property to 'GROUPBOX' or 'TRANSPARENT'

                        Maybe these skin section will be better for such case.

                        Hi,

                        I've spent this day and the day before, to figure out more about these problems:

                        • Changing a panel's SkinSelection to 'UNKNOWN' solves the problem.[*]So probably 'TRANSPARENT' would help at other cases too.[*]You were right about the Skin-difference! If I choose something else than the default (Golden) skin >> the “under-white” line gets smaller.

                        But the problems with these “solutions” are:

                        • Changing every each panel + groupbox + editboxes +++ one by one is an impossible missions :huh:[*]This problem is relative new (If I look back pictures from 2 years ago >> everything was fine than).[*]If I set somewhere CustomColor := True; >> As a user, I obviously expect it would draw THAT color what I've set before at .Color := clBlue; Not half of it.
                        • So I think a skin should NEVER be able to overdraw my Color, what I've set, if CustomColor= True;

                          (Otherwise what would be the purpose of CustomColor setting ??)

                        • Analized “Golden” skin, but can not figure out, what's the difference between that and other skins.
                        • It looks completely standard:

                        Code:
                        GLYPHMASK = @0117@0276@0174@0310@3@1
                        PARENTCLASS = EDIT
                        SHOWFOCUS = TRUE
                        STATES = 1

                        There is not even a color-definition or any thing else.

                        Cheers

                        in reply to: Ugly focus rectangle in TsButton #59710
                        SzakiLaci
                        Participant
                          'Support' wrote:

                          I think, buttons without skins should use the ShowFocus property only.

                          They should not depend from TsSkinManager.ButtonsOptions.ShowFocusRect property if have standard look.

                          How you think?

                          Sounds like a perfect solution! :a3:

                          in reply to: Ugly focus rectangle in TsButton #59690
                          SzakiLaci
                          Participant
                            'HeDiBo' wrote:

                            Suddenly, I find a focus rectangle on TsButton, that I did not see before…

                            Hi, 🙂

                            I just would like to mention there is a nice way to show :

                            which TsBitBtn has the focus at NON-skinned mode, by setting the .FocusedColor := clLime; property.

                            It may has nothing to do with this new problem… just would like to recommend a bit precaution, because it is related to “non-skinned focus” things.

                            So any new update regarding this may affect that behavior too, since it is a bit hard to test each property setup in every possible variations.

                            (Delphi GeExpert addon has a great feature to replace all components on the form at once. TsButton >> TsBitBtn.)

                            Cheers

                            PS: could you please edit your first topic to announce which version do you experience this new behavior? (After upgrading from which?)

                            It will help Serge too… 😉

                            in reply to: sComboBox ScaleBy dpi Itemheit errors #59684
                            SzakiLaci
                            Participant
                              'Support' wrote:

                              Standard ComboBox can have a wrong scaling in some cases, that's why I wrote about limitations. Look this article (a part about ComboBox):

                              https://zarko-gajic….ooks-correctly/

                              But, I have made some tests and TsComboBox was working well there in csDropDownList and csDropDown styles.

                              And I have added TsComboBox in your demo with ScaleBy calling and it was scaled well there too.

                              If you have a small demo with bad TsComboBox scaling, can you give me it? It may much reduce a time of the problem solving.

                              Thanks, I'll read it!

                              – I've just thought if you know about a problem of the original Delphi component, you are trying to fix if by overriding it. Don't you?

                              (Or it's just not possible in this special case?)

                              – Anyway I've just realized: the painting problem is global! Even simple sEdit components set with CustomColor := True; show same symptoms:

                              (Coloring them while stepping on them = OnEnter / OnExit)

                              [attachment=9383:CustomColor_Edit_draw_BUG.jpg]

                              PS: please correct title spelling mistace: Itemheit > Itemheight

                              in reply to: sComboBox ScaleBy dpi Itemheit errors #59664
                              SzakiLaci
                              Participant
                                'Support' wrote:
                                sComboBox is inherited from standard TComboBox and have standard limitation in sizing by ItemHeight property.

                                What kind of “limitation”? If I can set ItemHeight > an enhanced=derived component shouldn't be able to calculate this property itself based on font-size + dpi?

                                Quote:
                                I think, you can play with size of font for automatic changing of a control height. Maybe, set ParentFont property to False before “ScaleBy” calling.

                                That is what I'm currently forced to do. But searching hundreds of ComboBoxes one by one on 60 forms is not really someone wish, if buys a “ready to use” component pack. Don't you agree?

                                And that won't solve the painting bug!

                                Quote:
                                Maybe, set ParentFont property to False before “ScaleBy” calling.

                                Setting 1 property one by one and hoping it will be good … or calculating the right height is almost the same amount of work.

                                Quote:
                                Can you show a demo with slow recalculating and repainting?

                                🙁 if I have time I'll make a demo for this too… anyway I said nothing about “SLOW”, but “BAD”!I've already waisted more than a week to report ALL these bugs.

                                Quote:
                                By the way, you saw the TsSkinManager.Options.PixelsPerInch property? You can look it in work in the ASkinDemo or AMegaDemo

                                Maybe you can use this new feature instead of old “ScaleBy” using?

                                The last time I've checked, it did NOT work, if SKIN was turned OFF.

                                Skinned APP runs 16-32x slower.

                                On tablet PCs + no-fan POS PCs using ATOM CPUs + while using remote desktop >> skin has to be turned OFF to be able to run the APP properly.

                                [OFF] sorry, for beeing in such bad mood, but I really believed about this 14.26 version is stable. Now I'm behind schedule of 2 weeks because all of these problems, Now I have to cancel jobs, vacation, etc. And when I read here about bad tips instead of you would fix the a bug… [/OFF]

                                in reply to: sPageControl ScaleBy bug #59663
                                SzakiLaci
                                Participant

                                  FOUND a temporary SOLUTION!

                                  (but it's slowing down the loading time a bit 🙁 )

                                  [attachment=9375:sPageControl scaleBy_Fixed.jpg]

                                  1.) The main Problem was:

                                  – sVirtualImageList.StdHandleUsed was set to FALSE at design time by me.

                                  2.) WHY?

                                  – because since last version (14.26) Loading time of my APP increased by 19000ms ! (I have 87 images and 2 virtual-lists to show them in calculated size.)

                                  … so I had to set: StdHandleUsed = False; + UseCache =False; at design time on both VirtLists.

                                  Before 14.26 update, code like this was running in 1ms:

                                  Code:
                                  sBigPicList.AcBeginUpdate;
                                  sBigPicList.Height := 80; // this is a simplified example. The size is calculated according the % set + screen size.
                                  sBigPicList.Width := 80;
                                  sBigPicList.UseCache := True;
                                  sBigPicList.AcEndUpdate(False);

                                  After update > at each line stopped for 4-6000ms.

                                  3.) Trial 1 – OK, but too slow:

                                  It WORKS, if I'm turning it on at first line:

                                  Code:
                                  sBigPicList.AcBeginUpdate;
                                  sBigPicList.StdHandleUsed := True; //760ms
                                  sBigPicList.Height := 85; // 4600ms
                                  sBigPicList.Width := 85; // 6900ms
                                  sBigPicList.UseCache := True; // ?ms
                                  sBigPicList.AcEndUpdate(False);

                                  but each line takes too much time to load.

                                  4.) Trial 2 – Fail:

                                  It FAILS to calculate PageControl-space properly, if I'm turning it on at last line

                                  Code:
                                  sBigPicList.AcBeginUpdate;
                                  sBigPicList.Height := 85; // 0ms
                                  sBigPicList.Width := 85; // 0ms
                                  sBigPicList.UseCache := True; // 0ms
                                  sBigPicList.StdHandleUsed := True; //718ms >> acBeginUpdate seems not to supress refresh 🙁
                                  sBigPicList.AcEndUpdate(False);

                                  5.) Trial 3 – OK + bit slow:

                                  So the way “between” is to force-regenerat it after set:

                                  Code:

                                  sBigPicList.StdHandleUsed := True; //718ms >> acBeginUpdate seems not to supress refresh 🙁 … + 2.8MB memory comsumption
                                  sBigPicList.AcEndUpdate(False);
                                  sBigPicList.Loaded(); // 680ms + 2.3MB memory comsumption more. (only 0.74MB was freed between the 2 lines)

                                  6.) Questions…

                                  I really do not understand:

                                  – why does a VirtualImageList needs to consume memory and CPU to PRE-generate a list of pictures what we may not even use??

                                  – why does it have to run it twice? (Especially if the 1th line is closed inside an acBegin/End-update ?)

                                  – why isn't it freeing those 2.8MB before regenerating the list?

                                  7.) Memory leak

                                  Since I've set StdHandleUsed = True again >> any time I'm opening a Form with sPageControl on it, the program can not close properly.

                                  It reports random amount of memory leak of 11-21 pieces of: TFont + TPen + TBrush + TBitmap + TBitmapCanvas + TBitmapImage.

                                  [attachment=9374:StdHandleUsed_Memory_leak.jpg]

                                  (Fixing the problem = 20min. Writing this letter = 120min.)

                                  in reply to: sPageControl ScaleBy bug #59659
                                  SzakiLaci
                                  Participant
                                    'Support' wrote:

                                    … try to set the ParentFont property to False before scaling…

                                    Hi,

                                    did you TRY this method?

                                    I've tested it both design time, both runtime, but it does not do anything!

                                    in reply to: sPageControl ScaleBy bug #59654
                                    SzakiLaci
                                    Participant

                                      Anyway, this problem occures at non-scaled design time cases too!

                                      Code:
                                      page.UpdatePadding; >> does not help
                                      page.TabSpacing := 1;>> does not help
                                      page.Realign; >> does not help
                                      page.Caption := … >> changing does not help

                                      So how do I force-update it?

                                      in reply to: MainMenu font size runtime no effect (skinned) #59653
                                      SzakiLaci
                                      Participant

                                        [Dirty Solution]

                                        After trying 30 different ways, the ONLY solution I have found is:

                                        (Using the patched sSkinMenu.pas file Serge sent me.)

                                        Code:
                                        procedure TFrm_MenuSize.mmResize();
                                        var f: integer;
                                        MI: TMenuItem;
                                        begin
                                        f := round( (Screen.PixelsPerInch / 96) * sspe_FontSize.Value) ;
                                        if not sSkinManager1.Active then begin // NON-SKINNED
                                        Screen.MenuFont.size := f;
                                        Screen.IconFont.size := f;
                                        end
                                        else begin
                                        // sSkinManager1.MenuSupport.CustomFont := False;
                                        sSkinManager1.MenuSupport.Font.Size := f;
                                        sSkinManager1.MenuSupport.Font.Style := [fsBold]
                                        sSkinManager1.MenuSupport.ExtraLineFont.Size := f+2;

                                        sSkinManager1.MenuSupport.CustomFont := True; // <<< THIS IS the most important line !!! It will re-build the font

                                        // sSkinProvider1.RepaintMenu(); // FAQ says it needed, but it does not help fully http://www.alphaskins.com/afaq.php#T2
                                        // sSkinProvider.UpdateSkinCaption(sSkinProvider1);
                                        end;

                                        MI := MainMenu1.Items[MainMenu1.Items.count-1]; // last item … so it won't flicker too much
                                        MI.Visible := not MI.Visible; // turn OFF / ON … or the opposite >>> it will recalculate all item's WIDTH
                                        MI.Visible := not MI.Visible;
                                        end;

                                        in reply to: MainMenu font size runtime no effect (skinned) #59652
                                        SzakiLaci
                                        Participant

                                          This is what I ment by: “it should draw the upper-part of bigger fonts on top of the title bar.” >>

                                          [attachment=9366:submenu_override.jpg]

                                          in reply to: MainMenu font size runtime no effect (skinned) #59651
                                          SzakiLaci
                                          Participant
                                            'Support' wrote:

                                            Thank you for the demo.

                                            Look what I see.

                                            When font size is changed without skins then font is changed in popup menu only

                                            When font is changed with skins then font is changed in popup menu and in the menu line (this is a new behavior, previous behavior was like standard).

                                            PS. Can we chat in the Skype? It's more effective, I think.

                                            Hi,

                                            YES, but I can force-refresh non-skinned menu >> so it's fine!

                                            But I can not:

                                            – repaint skinned menu after font change >> nothing happens

                                            + it should draw the upper-part of bigger fonts on top of the title bar.

                                            This 2 things needs to be fixed.

                                            You have to know : your forum system usually does NOT sends any notification, if a topic changed! (Even if Watching is > ON >> and “immediate” is set.)

                                            I'm PM-ing you my SkyPe. (I don'T know yours)

                                            Thanks!

                                          Viewing 20 posts - 21 through 40 (of 149 total)