I think that we aren't talking about the same thing. I think that a transparent control must retain clicks to another controls if it is uppermost and in front of these controls. I think that this is correct.
Polyline is a different control. The area of line is the area of the control, other area will be full transparent and must pass the events to controls behind. If you click on line, the click must be fired on Polyline object, otherwise, it must be fired on the first control behind of polyline. The bug here is: I have two TImages and one polyline. The uppermost is TImage is positioned in a removed area (transparent) of polyline and the other TImage is the background. When I click on uppermost TImage click isn't fired on it nor on background TImage. It's fired on TForm! The same behavior happens if polyline is the uppermost control. Using SetShape make the "click" ignore TImages and TSpeedButtons (in front or behind) positioned in a removed area of a Shaped control. Since the click messages are processed on parent, I made the message redirection. Now I'm studing a way to check if the click is on a control area or not, to make a TControl.CMHitTest fix. 2014-11-22 7:57 GMT-02:00 Frederic Da Vitoria <[email protected]>: > I may be wrong, but this seems different from the problem you are > describing: in the bugtracker issue, the click triggers the Form handler > instead of being sent to a Control. In your problem, from your description, > I thought the click triggered the polyline control while you would have > wanted it to be handled by the TImage which is behind the polyline. In a > way, your problem is not enough transparency (in terms of who gets to > handle the click event) while the bugtracker bug is too much transparency. > Or did I misunderstand you? > > > 2014-11-22 10:01 GMT+01:00 Fabio Luis Girardi <[email protected]>: > >> Here is it: http://bugs.freepascal.org/view.php?id=20381 >> >> 2014-11-21 22:24 GMT-02:00 Fabio Luis Girardi <[email protected]>: >> >> I found this bug on bug tracker. I followed your idea and send a patch >>> that solves this. I'll try another approach tomorrow. >>> >>> Thank you very much! >>> Em 21/11/2014 20:48, "Frederic Da Vitoria" <[email protected]> >>> escreveu: >>> >>> 2014-11-21 16:01 GMT+01:00 Frederic Da Vitoria <[email protected]>: >>>> >>>>> >>>>> 2014-11-20 19:21 GMT+01:00 Fabio Luis Girardi <[email protected]> >>>>> : >>>>> >>>>>> I don't know if this is a bug or not. I created a control from a >>>>>> TCustomControl that draws a polyline with a transparent background. The >>>>>> transparent effect has been using SetShape procedure using a bitmap of 1 >>>>>> bit color depth. >>>>>> >>>>>> The "bug" (I don't know if this is a bug) is that a TImage behind of >>>>>> a instance of my polyline control don't receive the click messages, but a >>>>>> TButton instance receives. >>>>>> >>>>>> So, I don't know if this is a bug or I have to do something in my >>>>>> control to send these messages to TImage behind. >>>>>> >>>>> >>>>> I had once a similar issue with a tPanel behind another control, in >>>>> Delphi. IIRC, I indeed had to forward the messages in some way to the >>>>> tPanel. I can check in my archives, if you want, but I won't be able to do >>>>> it before tomorrow. >>>>> >>>> >>>> I just checked. Sorry, my memory was wrong, I did use TButtons. But it >>>> makes sense that the uppermost control would prevent any deeper control >>>> from receiving clicks, even if the uppermost control is visually >>>> transparent. >>>> >>> > -- > Frederic Da Vitoria > (davitof) > > Membre de l'April - « promouvoir et défendre le logiciel libre » - > http://www.april.org > -- The best regards, Fabio Luis Girardi PascalSCADA Project http://sourceforge.net/projects/pascalscada http://www.pascalscada.com
-- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
