Note to self:  "read questions more thoroughly in future". :-[

Walter Prins wrote:

>----- Original Message ----- 
>From: "Dave Sellers" <[EMAIL PROTECTED]>
>To: <[email protected]>
>Sent: Monday, May 02, 2005 11:19 AM
>Subject: [list] Re: [delphi-en] Creating/adding GroupBox at runtime
>
>
>  
>
>>You'll need to manually assign event handlers to relevant events:
>>
>>GBx.OnMouseDown := MyMouseDownEventHandler;
>>    
>>
>
>Actually in this case that's probably not what you want/should do, as the 
>question example given declares a descendant from TGroupbox,  and thus, one 
>should really be overriding the appropriate method (and not be assigning to 
>event handler properties.)   In the example code the Reintroduce keyword is 
>used (and there's no override keyword in sight) - this is the key problem. 
>The code should not use reintroduce and should use override.
>
>Simple working example code would be (create a new project and replace 
>unit1.pas's source with this):
>
>unit Unit1;
>
>interface
>
>uses
>  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
>  Dialogs, StdCtrls;
>
>type
>  TGbx = class(TGroupBox)
>  protected
>    { This method was identified by looking at StdCtrls.pas and 
>Controls.pas, tracing up the TGroupbox inehritance hierarchy to see which 
>method to override }
>    procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: 
>Integer); override;
>  end;
>  TForm1 = class(TForm)
>    procedure FormCreate(Sender: TObject);
>  private
>    { Private declarations }
>    FGbx : TGBx;
>  public
>    { Public declarations }
>  end;
>
>var
>  Form1: TForm1;
>
>implementation
>
>{$R *.dfm}
>
>{ TGbx }
>
>procedure TGbx.MouseDown(Button: TMouseButton; Shift: TShiftState; X,
>  Y: Integer);
>begin
>  { call inherited MouseDown method, that checks for assigned "OnMouseDown" 
>and fires if needed.}
>  inherited;
>
>  { now add our own mousedown behaviour }
>  ShowMessage('boo');
>
>  { you can of course change this whichever way you want (not call inherited 
>for example, only call it sometimes etc etc) }
>end;
>
>procedure TForm1.FormCreate(Sender: TObject);
>begin
>  FGbx := TGbx.Create(self);
>  FGbx.Parent := self;
>end;
>
>end.
>
>
>
>Regards
>
>Walter
>
>
>
>
>-----------------------------------------------------
>Home page: http://groups.yahoo.com/group/delphi-en/
>To unsubscribe: [EMAIL PROTECTED] 
>Yahoo! Groups Links
>
>
>
> 
>
>
>
>
>
>  
>



-----------------------------------------------------
Home page: http://groups.yahoo.com/group/delphi-en/
To unsubscribe: [EMAIL PROTECTED] 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/delphi-en/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 



Reply via email to