Current filter:
                                You should refresh the page.
                                0
                                  • Hi,

                                    I am having issues with navigator hints: in our application, there are a couple of places where the hints don't show.
                                    I made sure that the view's OptionsBehavior.NavigatorHints is true, that OptionsView.Navigator is true and that at least some of the navigator buttons are visible and enabled. Still, in two places the hints don't show. In both cases, the grid is in a from called with ShowModal. However, when I create a simple application to recreate those conditions, the hints show just fine...

                                    I traced in the code and fond something "interesting" in cxContainer.pas

                                    function CanShowHint(AControl: TWinControl): Boolean;
                                      function GetForm(AWnd: HWND; out AForm: TCustomForm;
                                        out AFormStyle: TFormStyle): Boolean;
                                      var
                                        AControl: TWinControl;
                                      begin
                                        AControl := FindControl(AWnd);
                                        Result := AControl is TCustomForm;
                                        if Result then
                                        begin
                                          AForm := TCustomForm(AControl);
                                          AFormStyle := TCustomFormAccess(AForm).FormStyle;
                                        end;
                                      end;

                                    [...]

                                    begin
                                      Result := Application.Active and AControl.HandleAllocated and
                                        IsWindowVisible(AControl.Handle) and
                                        (FindVCLWindow(GetMouseCursorPos) = AControl);
                                      if Result then
                                      begin
                                        ARootParent := GetRootParent(AControl.Handle);
                                        Result := not GetForm(ARootParent, AForm, AFormStyle) or
                                          AForm.Active or (AFormStyle = fsMDIForm) or (FVisiblePopupWindowList.Count > 0) and
                                          IsChild(ARootParent, TcxCustomPopupWindow(FVisiblePopupWindowList[0]).OwnerControl.Handle);
                                      end;
                                    end;

                                    I don't understand the "not" in front of "not GetForm(ARootParent, AForm, AFormStyle"). When I remove it, the hints show fine.
                                    The rest of the statement uses AForm, which does not get a value if GetForm returns false (from what I see). So that "not" loooks suspicious to me.

                                    Could you look into this? I hope I am not missing something obvious!

                                    Thanks,
                                    Christophe

                                0

                                Hi Christophe,

                                Sorry, but it's difficult to determine the cause of your problem due to the lack of information.
                                The possible cause is that you're using an older build of our components. Please visit our version info page at http://www.devexpress.com/Support/Versions.xml, to learn about the most recent versions of our products, and obtain instructions on how to update them. Does the problem still persist with the newer version of our components?
                                If so, could you please provide us with a couple of screenshots illustrating this problem, and, if possible, a sample project?

                                Thanks,
                                Dimitros

                                0

                                Dimitros,

                                I am now using the latest version of your components.

                                I am able to reproduce the issue: see the attached project. I have a main form with just two buttons:
                                  The leftmost button calls showModal to display a form with a grid where navigator hints don't work. This form comes from our real product (I did not create that form, simply removed all the code in the unit).

                                  The rightmost button calls showModal to display a form with a grid that I created from scratch, and where the navigator hints work properly.

                                Also, if I change the project so that the form with the broken grid becomes the main form, then the hints work properly on that form (see comments in project source).

                                In my previous post, I mentionned code that looked suspicious - after looking at it again, I see that with boolean shortcuts on, AForm is assigned when it needs to be, so my point is invalid. But still, by removing that "not" in front of "GetForm", the hints show properly everywhere in my test application (probably not how to fix it, but this may gives a clue as to what is wrong).

                                Thank you for looking into this.
                                Christophe

                                navigators.zip
                                0

                                Hi Christophe,

                                Thank you for the sample. It was very helpful.
                                The cause of the problem is that your form's BorderStyle property has a bsDialog value.
                                So , I've converted this question to a bug report.

                                Thanks,
                                Dimitros

                                dx_sample.zip
                                You must  log in  or  register  to leave an answer

                                Is your intention to post an answer to your own question?

                                • If so, then proceed.
                                • If you simply wanted to post additional information, ask for further clarification, or to just say "Thanks!", please click Leave a Comment.
                                • If you wish to edit your original question, please use the Edit button in the Toolbox at the top right corner of that entry.