Forum Replies Created
-
AuthorPosts
-
September 8, 2020 at 11:17 am in reply to: Empty or invisible Hints if TsAlphaHints.HandleDisabledCtrls set #69458HeDiBoParticipant
Using the same acHintHidden files, you can see that hints may not show at all!!
If HandleDisabledCtrls is False, there is no problem!Attachments:
You must be logged in to view attached files.HeDiBoParticipantSolved. Please close this topic
September 8, 2020 at 11:07 am in reply to: An image as part of a row in TcxGrid has wrong color #69456HeDiBoParticipantNot solved in 15.15 😢
September 8, 2020 at 10:59 am in reply to: Bug in TsRadioGroup prevents unselecting all items #69455HeDiBoParticipantNot solved in 15.15
September 8, 2020 at 10:54 am in reply to: If HandleDisabledCtrls is True, hints reappear immediately #69454HeDiBoParticipantThis seems solved. But keep the topic open until the other timing issues are solved too.
HeDiBoParticipantIt is still not fixed in 15.15 😢
September 8, 2020 at 10:11 am in reply to: AC15.13: TsMonthCalendar should have a function to reload #69452HeDiBoParticipantI found an alternative to nilling the event. You can close this topic.
September 8, 2020 at 9:32 am in reply to: Hints on disabled controls may cause AV if modal form is freed #69449September 8, 2020 at 9:28 am in reply to: TsDBCalcEdit throws very strange message on loading the Delphi IDE #69448HeDiBoParticipantPlease, close this topic
HeDiBoParticipantI ran your project in Delhi XE4 and had no problem 😲
HeDiBoParticipantThings have surely changed in AC 15.15
Now hints will not show without pause (that’s good). But they may not show at all (that’s bad).
As always: only a problem if HandleDisabledCtrls is TrueHeDiBoParticipantNot solved in 15.15
September 7, 2020 at 1:36 pm in reply to: TsDBCalcEdit throws very strange message on loading the Delphi IDE #69438HeDiBoParticipantProblem solved 😊
September 7, 2020 at 1:32 pm in reply to: TsDBCalcEdit should not honor Min and Max on displaying values #69436HeDiBoParticipant<p zoompage-fontsize=”14″>There is another problem with MinValue in this control.
If you insert a record, the control is prefilled with this minimum value, when the user focuses the control. At least so it seems. However if the user goes to another control, the TsDBCalcEdit control is cleared again. So, in stead of filling the data field with the minimum value, the data field stays cleared. Then when the record is posted, it is posted with an empty data field, which is the worst that can happenIt is worse now. When a user inserts a record, the control is no longer prefilled with the minimum value, but it is cleared. And furthermore this cleared value is considered valid 😒😯😲
- This reply was modified 4 years, 2 months ago by HeDiBo.
HeDiBoParticipantNo change in AC 15.15 😒
Why did you put the comment “Patch for refresh of columns in cxGrid” in the source? That’s exactly what happens here.- This reply was modified 4 years, 2 months ago by HeDiBo.
HeDiBoParticipantA bit further below there is another AV:
if not bDisHintShown and (TAccessAlphaHints(Manager).HintTimeCtrl <> nil) and not TAccessAlphaHints(Manager).HintTimeCtrl.Enabled then // Hide hint of disabled control when MouseLeave if (TAccessAlphaHints(Manager).HintTimeCtrl <> wCtrl) and wCtrl.ShowHint and // ^^^^^-----> WCtrl may be nil (wCtrl.Hint <> '' ) then begin p.X := acMousePos.X; p.Y := acMousePos.Y;// + 16; TAccessAlphaHints(Manager).HintTimeCtrl := wCtrl;
HeDiBoParticipantThere are some improvements, but posting this message timed at 13 seconds!!
HeDiBoParticipantMaybe you noticed also, that the clicking of the Last Record button inserts a new column at the left hand side of the grid. I’m going to test if that’s what makes the bug surface.
But don’t forget: if the Next Record button lands on the Last Record, the same operations take place. But the bug does not.
And indeed, if I keep the first column visible, the bug does not surface.HeDiBoParticipantI wasn’t saying that Application.ProcessMessages should be done. I only enabled the statement at the right place (the commented one was in the wrong place) to find out what it was for. And to my surprise the problem disappeared.
So, your comment (Patch for refresh of columns in cxGrid) was the one that made me think that the presence of a cxGrid on this Frame caused the problem. Can you recollect why you made this comment?
The WM_SETCURSOR message is normally left unhandled. There must be another reason why it repeats.The SPY++ trace has this at the end of the endless WM_SETCURSOR messages:
<002801> 001F0650 R WM_SETCURSOR fHaltProcessing:False <002802> 001F0650 S WM_SETCURSOR hwnd:002309EC nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE <002803> 001F0650 R WM_SETCURSOR fHaltProcessing:False <002804> 001F0650 S WM_SETCURSOR hwnd:002309EC nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE <002801> 001F0650 R WM_SETCURSOR fHaltProcessing:False <002802> 001F0650 S WM_SETCURSOR hwnd:002309EC nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE <002803> 001F0650 R WM_SETCURSOR fHaltProcessing:False <002804> 001F0650 S WM_SETCURSOR hwnd:002309EC nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE <002805> 001F0650 R WM_SETCURSOR fHaltProcessing:False <002806> 001F0650 S message:0xA100 [User-defined:WM_APP+8448] wParam:000A0000 lParam:00000000 <002807> 001F0650 R message:0xA100 [User-defined:WM_APP+8448] lResult:00000000 <002808> 001F0650 S message:0xA100 [User-defined:WM_APP+8448] wParam:000A0000 lParam:00000000 <002809> 001F0650 R message:0xA100 [User-defined:WM_APP+8448] lResult:00000000 <002810> 001F0650 S WM_SETCURSOR hwnd:000E0848 nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE <002811> 001F0650 R WM_SETCURSOR fHaltProcessing:False <002812> 001F0650 S message:0xA100 [User-defined:WM_APP+8448] wParam:000A0000 lParam:00000000 <002813> 001F0650 R message:0xA100 [User-defined:WM_APP+8448] lResult:00000000 <002814> 001F0650 S message:0xA100 [User-defined:WM_APP+8448] wParam:000A0000 lParam:00000000 <002815> 001F0650 R message:0xA100 [User-defined:WM_APP+8448] lResult:00000000 <002816> 001F0650 S WM_SETCURSOR hwnd:000E0848 nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE <002817> 001F0650 R WM_SETCURSOR fHaltProcessing:False <002818> 001F0650 S message:0xA100 [User-defined:WM_APP+8448] wParam:000A0000 lParam:00000000 <002819> 001F0650 R message:0xA100 [User-defined:WM_APP+8448] lResult:00000000 <002820> 001F0650 S message:0xA100 [User-defined:WM_APP+8448] wParam:000A0000 lParam:00000000 <002821> 001F0650 R message:0xA100 [User-defined:WM_APP+8448] lResult:00000000 <002822> 001F0650 S message:0xA100 [User-defined:WM_APP+8448] wParam:000A0000 lParam:00000000 <002823> 001F0650 R message:0xA100 [User-defined:WM_APP+8448] lResult:00000000 <002824> 001F0650 S message:0xA100 [User-defined:WM_APP+8448] wParam:000A0000 lParam:00000000 <002825> 001F0650 R message:0xA100 [User-defined:WM_APP+8448] lResult:00000000 <002826> 001F0650 S message:0xA100 [User-defined:WM_APP+8448] wParam:000A0000 lParam:00000000 <002827> 001F0650 R message:0xA100 [User-defined:WM_APP+8448] lResult:00000000 <002828> 001F0650 S message:0xA100 [User-defined:WM_APP+8448] wParam:000A0000 lParam:00000000 <002829> 001F0650 R message:0xA100 [User-defined:WM_APP+8448] lResult:00000000 <002830> 001F0650 S message:0xA100 [User-defined:WM_APP+8448] wParam:000A0000 lParam:00000000 <002831> 001F0650 R message:0xA100 [User-defined:WM_APP+8448] lResult:00000000 <002832> 001F0650 S WM_SETCURSOR hwnd:000E0848 nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE <002833> 001F0650 R WM_SETCURSOR fHaltProcessing:False
It must be a non-windows message. Do you recognize the WM_APP+8448 message ID?
The TcxContainer class contains this:
procedure TcxContainer.WMSetCursor(var Message: TWMSetCursor); begin with Message do if HasInnerControl and (CursorWnd = Handle) and (Smallint(HitTest) = HTCLIENT) and not PtInRect(ViewInfo.ClientRect, GetMouseCursorClientPos) then begin Windows.SetCursor(Screen.Cursors[crArrow]); Result := 1; Exit; end; inherited; end;
That looks as a potential candidate. TcxContainer is the base class of TcxCustomEdit and every cell in a grid is essentially an edit field. The scroll may cause the grid cells to shift, making the test not PtInRect(ViewInfo.ClientRect permanently True. But it may also be my wild imagination.
September 1, 2020 at 11:52 am in reply to: TsDBCalcEdit should not honor Min and Max on displaying values #69396HeDiBoParticipantThis is the text of the Modified property help:
Indicates whether the user edited the text of the edit control.
Use Modified to determine whether the user changed the Text property of the edit control. Modified is only reset to False when you assign a value to the Text property. In particular, it is not reset when the control receives focus.
Important is the first line: it is set when the USER changed the text property. Is your information different? DO you think that reading the control’s value from a database sets Modified too?
I tested that and I cannot produce a Modified set if the dataset record changes. On the contrary: if a record is read causing the text of the control to change, the Modified property is set to False!
-
AuthorPosts