[DUG] Component creation
Wayne Roser
rr at kristin.school.nz
Tue Sep 5 12:05:36 NZST 2006
Hi Gary
1. Am I correct in thinking that I would need to trap mousedown on every non-focusable object and
call MyMouseDown for each TEdit1 that might have focus?
2. Is this the usual way to pass on the message. (I called the component a TFocusEdit)
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y:
Integer);
var
AMessage: TWMLButtonDown;
begin
FocusEdit1.MyMousedown(AMessage);
//All other FocusEdits and FocusCombos etc get a MyMousedown here; recursion?
end;
Wayne
NZ Borland Developers Group - Delphi List <delphi at ns3.123.co.nz> on Tuesday, 5 September 2006 at
11:37 a.m. +0000 wrote:
> [Reply]
>
>HI Rob et all,
>
>Here's a mod to the previous code that makes the change when you click on the form.
>
>Note that when you click off the component on to a non-focusable object, the original component
>still has focus, so you can trap the mousedown event and go from there.
>
>If you click on a focusable component then focus leaves and you can trap the onexit event.
>
>HTH
>
>cheers
>
>Gary
>
>unit Edit1;
>
>interface
>
>uses
>
> Messages,SysUtils, Classes, Controls, StdCtrls, Graphics;
>
>type
>
> TEdit1 = class(TEdit)
>
> private
>
> { Private declarations }
>
> procedure MyExit(var Message: TCMExit); message CM_EXIT;
>
> procedure MyEnter(var Message: TCMEnter); message CM_ENTER;
>
> procedure MyMousedown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN;
>
> protected
>
> { Protected declarations }
>
> public
>
> { Public declarations }
>
> published
>
> { Published declarations }
>
> end;
>
>procedure Register;
>
>implementation
>
>procedure Register;
>
>begin
>
> RegisterComponents('GCS', [TEdit1]);
>
>end;
>
>{ TEdit1 }
>
>procedure TEdit1.MyEnter(var Message: TCMEnter);
>
>begin
>
> color:=clYellow;
>
>end;
>
>procedure TEdit1.MyExit(var Message: TCMExit);
>
>begin
>
>//
>
> color:=clWindow;
>
>end;
>
>procedure TEdit1.MyMousedown(var Message: TWMLButtonDown);
>
>begin
>
> color:=clWindow;
>
> inherited;
>
>end;
>
>end.
>
>At 10:55 on 5/09/2006 you wrote
>
>>To : delphi at ns3.123.co.nz
>
>>CC :
>
>>From: Robert martin, rob at wildsoft.co.nz
>
>>Content Type: text/plain
>
>>Attached:
>
>>
>
>>Thought I had tried it but my implementation mat have been wrong, will
>
>>have another crack :)
>
>>
>
>>Rob Martin
>
>>Software Engineer
>
>>
>
>>phone +64 03 377 0495
>
>>fax +64 03 377 0496
>
>>web www.chreos.com
>
>>
>
>>Wild Software Ltd
>
>>
>
>>
>
>>
>
>>James Sugrue wrote:
>
>>> WM_KILLFOCUS?
>
>>>
>
>>> Never used it, but apparently it can be a bit dodgy.
>
>>>
>
>>> -----Original Message-----
>
>>> From: delphi-bounces at ns3.123.co.nz [mailto:delphi-bounces at ns3.123.co.nz] On
>
>>> Behalf Of Robert martin
>
>>> Sent: Tuesday, September 05, 2006 10:11 AM
>
>>> To: NZ Borland Developers Group - Delphi List
>
>>> Subject: [DUG] Component creation
>
>>>
>
>>> Hi
>
>>>
>
>>> I have a custom component that expands to show data. When focus changes
>
>>> it reverts back to its shrunken state. However I also want it to revert
>
>>> to small if the user clicks the mouse anywhere outside of the component
>
>>> (the way that TComboBox does if it is dropped down).
>
>>>
>
>>> I assume I need to trap a windows message to handle this but I just cant
>
>>> see which.
>
>>>
>
>>> Any suggestions ?
>
>>>
>
>>>
>
>>_______________________________________________
>
>>Delphi mailing list
>
>>Delphi at ns3.123.co.nz
>
>>http://ns3.123.co.nz/mailman/listinfo/delphi
>
>>
>
>
>
>----------------------------------------------------------------------------------------------------
>
>Gary Benner
>e-Engineer, Lecturer, and Software Developer
>
>[ http://www.123.co.nz ]123 Internet Limited
>[ http://www.waiariki.ac.nz ]Waiariki Institute of Technology
>[ http://www.sunshinebags.co.nz ]Sunshine Garden Bag Co.
>[ http://www.sommnet.com ]Sommnet.com Limited
>Mob: 021 966 992
>Email: [ mailto:gary at 123.co.nz ]gary at 123.co.nz
>
>
>
>Ref#: 41006
>
>_______________________________________________
>Delphi mailing list
>Delphi at ns3.123.co.nz
>http://ns3.123.co.nz/mailman/listinfo/delphi
More information about the Delphi
mailing list