HeDiBo

Forum Replies Created

Viewing 20 posts - 281 through 300 (of 1,174 total)
  • Author
    Posts
  • HeDiBo
    Participant

      I can add to this:
      Any control that causes a click animation will throw an exception on the next click on another control!!!

      Not only on this particular frame, but on any frame in my project.

      HeDiBo
      Participant

        I have some added info.
        The problem occurs when changing the skin after a click on any control with special click animation. (SkinManager.AnimEffects.Buttons.beCklick = True)

        • This reply was modified 6 years, 1 month ago by HeDiBo.
        in reply to: Show hints even if control is disabled #68341
        HeDiBo
        Participant

          The WM_MOUSEMOVE message is more handy for that. We should check position of the mouse after each moving.
          WM_MOUSEHOVER can’t do that.

          Both have the cursor position in the lParam parameter. But WM_MOUSEHOVER only occurs once at the right time. Maybe I don’t get your point.

          HeDiBo
          Participant

            The problem seems to stem from the use of an acThdTimer.TacThreadedTimer.Timer where it was already freed.
            The timer was used in [acAnimation.DoClickAnimation][516].
            According to the FastMM Trace it was freed in [acThdTimer.TacThreadedTimer.Timer][381], but I don’t see a free of a timer there.

            The code to select a skin is:

            procedure TfrSettings.lvSkinsSelectItem( Sender:   TObject;
                                                     Item:     TListItem;
                                                     Selected: Boolean    );
            begin
               if Selected                                         and
                  ( not MySelection                              ) and
                  ( dmWIP4.sSkinManager.SkinName <> Item.Caption )     then begin
                  dmWIP4.sSkinManager.SkinName := Item.Caption;
               end{if};
            end;

            The code to fill the lvSkins ListView is:

            procedure TfrSettings.SetupSkinsView;
            var
               i:          Integer;
               li:         TListItem;
            begin
               with dmWIP4 do begin
                  lvSkins.Items.BeginUpdate;
                  Try
                     lvSkins.Clear;
                     lvSkins.Visible := sSkinManager.Active;
                     gbSamples.Visible := lvSkins.Visible;
                     if lvSkins.Visible then begin
                        lvSkins.SortType := stText;              // Show in skin name sequence
                        lvSkins.LargeImages := SkinImages;
                        for i := 0 to SkinNames.Count-1 do begin
                           li := lvSkins.Items.Add;
                           li.Caption := SkinNames;
                           li.ImageIndex := i;
                        end{for};
                     end{if};
            
                  Finally
                     lvSkins.Items.EndUpdate;
                  end{try};
               end{with};
            end;

            the code to fill skinnames and skin images is:

                SkinImages:               TCustomImageList;
                SkinNames:                TStringList;
            .
            .
            procedure TdmWIP4.LoadInternalSkins(sl:         TacStringList;
                                                WithImages: Boolean        );
            var
               ski:  TacSkinListData;
            begin
               if Assigned(sSkinManager.SkinListController) then
               with sSkinManager.SkinListController do begin
                  if WithImages then begin
                     SkinManagerFreeImages;
                     SkinImages := TCustomImageList.Create(Self);
                     SkinImages.Height := sSkinManager.SkinListController.ImgList.Height;
                     SkinImages.Width  := sSkinManager.SkinListController.ImgList.Width;
                     sSkinManager.SkinListController.UpdateIfNeeded(True{Force Update});  // Added in AC 12.20/21
                                                                                          // Changed in AC 14.25 (True parm needed now)
                     end
                  else begin
                     FreeAndNil(SkinNames);
                  end{if};
                  SkinNames := TStringList.Create;
                  sl.Clear;
                  for ski in SkinList do begin
                     if ski.skSkinMode = smInternal then begin
                        SkinImages.AddImage(sSkinManager.SkinListController.ImgList, ski.skImageIndex);
                        SkinNames.Add(ski.skName);
                     end{if};
                  end{for};
                  sl.Assign(SkinNames);
               end;
            end;
            
            in reply to: File Open dialog distorted. #68336
            HeDiBo
            Participant

              Remember, it’s a mess if the Windows color mode is dark (“Dark” option under the “Choose your app mode” section in Settings > Personalization > Colors).

              I’ve made a new little test project to demonstrate.
              When SkinManager is active, the opendialog look hideous. It will also not close with the window close button, and it will not be sizable with the sizing triangle.
              When SkinManager is not active all’s well.

              Attachments:
              You must be logged in to view attached files.
              in reply to: File Open dialog distorted. #68330
              HeDiBo
              Participant

                I didn’t wrote about exceptions. I mean, that this dialog is not skinned by default (the acTryToSkinCommonDialogs variable is False in the sDefaults.pas).
                Why you have this dialog skinned partially?

                No, I wrote about the exception that ocurred. I don’t know why you think that’s not a problem. If dialog should not be skinnable (the best way to go at the moment) don’t allow it or prevent exceptions.

                HeDiBo
                Participant

                  It has nothing to do with MaterialDark. The problem occurs on every skin. Click the huge button, then change skin: loop resulting in memory overflow, or another exception.
                  The button is huge, because that page shows a sample of controls used in the project.

                  in reply to: Cannot create a new topic #68328
                  HeDiBo
                  Participant

                    The message is simply not posted. No error message.

                    in reply to: Show hints even if control is disabled #68327
                    HeDiBo
                    Participant

                      Check whether the control that is child to the parent is disabled. Then take over its hint handling if the parent itself has no hint handling.

                      in reply to: Cannot create a new topic #68303
                      HeDiBo
                      Participant

                        I try to attach the message as a zip file.
                        That worked.

                        In the mean time I was able to add the topic in the AC Controls forum.

                        • This reply was modified 6 years, 1 month ago by HeDiBo.
                        Attachments:
                        You must be logged in to view attached files.
                        in reply to: Show hints even if control is disabled #68294
                        HeDiBo
                        Participant

                          I saw that, but that would overcomplicate things.
                          Don’t you think catching the WM_MOUSEHOVER message for the control that is parent to the disabled control would be the way to go?

                          in reply to: File Open dialog distorted. #68292
                          HeDiBo
                          Participant

                            Still, exceptions are not a good idea.
                            In the given situation, SkinData is nil and should be tested.
                            I’m not sure what the given compiler directives have to do with it. Or do you mean that you’re going to set it up like that?

                            • This reply was modified 6 years, 1 month ago by HeDiBo.
                            HeDiBo
                            Participant

                              I’ve sent it by separate mail.

                              in reply to: Access Violation in sSkinmanager (AC 14.31) #68283
                              HeDiBo
                              Participant

                                Please close this bug report

                                in reply to: File Open dialog distorted. #68281
                                HeDiBo
                                Participant

                                  Pressing sOpenDialog shows a partly skinned dialog that will throw an exception if cancelled (same demo project) in AC 15.00.

                                  procedure TacDialogWnd.acWndProc(var Message: TMessage);
                                  var
                                    PS: TPaintStruct;
                                    X, Y, i: integer;
                                    cR, rClient: TRect;
                                  begin
                                  {$IFDEF LOGGED}
                                  //  if (SkinData <> nil) and (SkinData.SkinSection <> 'DIALOG') then
                                      AddToLog(Message);
                                  {$ENDIF}
                                    case Message.Msg of
                                      WM_DESTROY, WM_NCDESTROY: begin
                                        if SkinData.FCacheBmp <> nil then   << Access violation, because SkinData = nil!!!
                                          SkinData.FCacheBmp.Assign(nil);

                                  So, please do not attempt to skin the dialog at all in this situation. The unskinned variant is what users are used to anyway.

                                  • This reply was modified 6 years, 1 month ago by HeDiBo.
                                  in reply to: BBCodes do not work in the forum. #68278
                                  HeDiBo
                                  Participant

                                    Have you tried to show that link somewhere?

                                    in reply to: Show hints even if control is disabled #68277
                                    HeDiBo
                                    Participant

                                      No progress in 15.00?

                                      HeDiBo
                                      Participant

                                        Any progress on letting authors close their own topics?

                                        HeDiBo
                                        Participant

                                          I did not mention that beClick and beLighting was enabled in SkinManager.

                                          in reply to: Bound Labels may loose font settings (AC14.33) #68248
                                          HeDiBo
                                          Participant

                                            Problem solved in AC 14.36 👍🏾

                                            PS. I’m still not able to close this item. Problem is probably in WordPress settings. The menu item to tag the item as resolved is not present in a user’s reply heading.

                                            • This reply was modified 6 years, 2 months ago by HeDiBo.
                                            • This reply was modified 6 years, 2 months ago by HeDiBo.
                                          Viewing 20 posts - 281 through 300 (of 1,174 total)