[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