Forum Replies Created
-
AuthorPosts
-
mconeParticipant'Support' wrote:
Hello!
Thank you for the demo, I'll try to fix it in the nearest release.
The problem is solved with 8.15. I did not test 8.12, 8.13, or 8.14.
Here is a screen image from the test program:
[attachment=6155:Alphatest8.15.jpg]
Thank you.
mconeParticipantYou have indeed solved the issue. Thank you.
Proof (see the version number in the caption):
mconeParticipantI found the problem – and it was my fault. Apparently v6 must have been tolerant of this mistake but v7 was not. Thank you for checking anyway – and my apologies.
Example of logic error:
Code:sListbox_EntityControl.items.clear;for iX := 1 To iEntSize do
begin
sListbox_EntityControl.items[iX-1] := szText;
end;Repaired logic:
Code:sListbox_EntityControl.items.clear;for iX := 1 To iEntSize do
begin
sListbox_EntityControl.items.add(szText);
end;November 24, 2010 at 8:34 pm in reply to: TsDecimalSpinEdit Change Event No Longer Called in v7.22 #43952mconeParticipantConfirmed: Issue resolved in v7.23. Thank you.
mconeParticipantThis problem continues in v7.23.
mconeParticipantThanks Serge –
I discovered that I needed a mouse up event to make this work. Well, the call to SC_DragMove for WM_BUTTONDOWN causes the regular MouseUp event to never be triggered. After scouring the net for this issue, I found that it is a very common problem. This is how others have solved it.
I added a MouseIsUp event with a new object private FWasDragging boolean value. Whenever the panel floats, then I set the FWasDragging to TRUE. Then, when the left button comes up, the logic drops to the section below where we test the FWasDragging value for TRUE, then send the MouseIsUp event. It works every time.
You can probably improve on it by using the standard MouseUp and MouseDown events. However, I wanted get to a solution quickly – and this was the quickest way for me.
-Mike
In the class definition add:
CODE.
FOnMouseIsUp: TNotifyEvent;
.
.
property OnDragMouseIsUp: TNotifyEvent read FOnMouseIsUp write FOnMouseIsUp;In the constructor add:
CODEFWasDragging := false;At the bottom of the WndProc procedure add:
CODE.
.
.
WM_LBUTTONDOWN : if IsFloat then
begin
if Assigned(FOnMouseIsDown) then FOnMouseIsDown(Self);
Message.Result := 0;
ReleaseCapture;
Perform(WM_SYSCOMMAND, $F012, 0); //SC_DragMove
FWasDragging := true;
Exit;
end;
end;if FWasDragging then
begin
FWasDragging := false;
if Assigned(FOnMouseIsUp) then FOnMouseIsUp(Self);
end;
.
.
.mconeParticipantI just realized I posted this to the wrong forum. It should be in “suggestions.” My apologies.
Mike -
AuthorPosts