[DUG] Pasting components from code

Rogério Martins rogmartins at gmail.com
Fri Sep 17 12:55:20 NZST 2010


Hi !
I have an application who does something like your app does.
I guess you should generate the PAS file together DFM, generating
declarations and skeleton implementations of the event's procedures there.
It works for me !!

2010/9/16 John Bird <johnkbird at paradise.net.nz>

> I have a source generation program to speed creating of sets of labels and
> edit boxes on a form -  which gives output like examples below.
>
> I paste the code that goes in the DFM onto the form, and it creates all the
> components - a neat Delphi trick for those who might not know.
>
> My problem is that the OnEnter and OnExit events seem to disappear from
> these components and I have to add them back manually, even though the code
> was already in the unit when the paste was done.  My detective work so far
> seems to show that it depends on where the forward (first) declaration of
> the event code is placed whether it is recognised or not - seems it has to
> be above the {private} and {public} sections for the form
>
> What are the rules for where such event code has to be declared? - I am
> vague on this.   I have heard others use generated code too, I am wondering
> if they have tips or pitfalls like this to avoid.
>
> (Aside - Personally I favour source generation like this a lot.   It is
> cool
> to do, ends up as fast as hand written code, and most importantly saves
> time
> and introduces standard code structure that is easy to understand.)
> (Further aside -  this is code generated by the program for a new part of
> itself.   Its cool when a program can write its own code).
>
> example of output from the code generation....
>
> // Forward declaration
> procedure edtSOURCEINPUTEnter(Sender: TObject);
> procedure edtSOURCEINPUTExit(Sender: TObject);
>
>
> //Implementation -------  edit enter and exit events for editing this
> record --------
> procedure Tform1.edtSOURCEINPUTEnter(Sender: TObject);
> begin
>    (some code here)
> end;
>
> procedure Tform1.edtSOURCEINPUTExit(Sender: TObject);
> begin
>    (some code here)
> end;
>
> And:
>
> //Paste onto form
>
>  object lblSrcInpPath: TLabel
>    Left = 300
>    Top = 51
>    Width = 142
>    Height = 13
>    Caption = 'Path'
>    Font.Charset = DEFAULT_CHARSET
>    Font.Color = clBlack
>    Font.Height = -11
>    Font.Name = 'MS Sans Serif'
>    Font.Style = []
>    ParentFont = False
>  end
>  object edtSrcInpPath: TEdit
>    Left = 420
>    Top = 48
>    Width = 121
>    Height = 21
>    Font.Charset = DEFAULT_CHARSET
>    Font.Color = clNavy
>    Font.Height = -11
>    Font.Name = 'Tahoma'
>    Font.Style = [fsBold]
>    ParentFont = False
>    TabOrder = 1
>    Text = ''
>    Enabled = True
>    OnEnter = edtSOURCEINPUTEnter
>    OnExit = edtSOURCEINPUTExit
>  end
>  object lblSrcInpFileIn: TLabel
>    Left = 300
>    Top = 75
>    Width = 142
>    Height = 13
>    Caption = 'Filename without path'
>    Font.Charset = DEFAULT_CHARSET
>    Font.Color = clBlack
>    Font.Height = -11
>    Font.Name = 'MS Sans Serif'
>    Font.Style = []
>    ParentFont = False
>  end
>  object edtSrcInpFileIn: TEdit
>    Left = 420
>    Top = 72
>    Width = 121
>    Height = 21
>    Font.Charset = DEFAULT_CHARSET
>    Font.Color = clNavy
>    Font.Height = -11
>    Font.Name = 'Tahoma'
>    Font.Style = [fsBold]
>    ParentFont = False
>    TabOrder = 2
>    Text = ''
>    Enabled = True
>    OnEnter = edtSOURCEINPUTEnter
>    OnExit = edtSOURCEINPUTExit
>  end
>
> etc....
>
>
> John
>
>
> _______________________________________________
> NZ Borland Developers Group - Delphi mailing list
> Post: delphi at delphi.org.nz
> Admin: http://delphi.org.nz/mailman/listinfo/delphi
> Unsubscribe: send an email to delphi-request at delphi.org.nz with Subject:
> unsubscribe
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://listserver.123.net.nz/pipermail/delphi/attachments/20100916/db010e77/attachment.html 


More information about the Delphi mailing list