Carl,
thats what I did last night. It just took about 6 hrs to wade through
all 92 odd table components and retest. :-(
On 13 May 99 at 12:00, Carl Reynolds wrote:
> This message is in MIME format. Since your mail reader does not understand
> this format, some or all of this message may not be legible.
>
> ------ =_NextPart_000_01BE9CD3.AA8BCE20
> Content-Type: text/plain
>
> Hi Rohit. I understand your frustration with the TTable design, but you
> don't have to follow that design in its descendants. You can achieve
> the effect you desire with the following hierarchy:
>
> type
> TTableCmn = class(TTable)
> procedure DoOnNewRecord; override;
> procedure NewRecordStuff; virtual;
> end;
>
> TTable1 = class(TTableCmn)
> procedure NewRecordStuff; override;
> end;
>
> implementation
>
> procedure TTableCmn.DoOnNewRecord;
> begin
> NewRecordStuff;
> inherited; // OnNewRecord will run here
> end;
>
> procedure TTableCmn.NewRecordStuff;
> begin
> FieldByName ('CommonField').AsInteger := 1;
> end;
>
> procedure TTable1.NewRecordStuff;
> begin
> inherited; // As per "normal"
> FieldByName ('MyField').AsText := 'blah';
> end;
>
> Of course if you needed to have your descendant code execute amidst the
> TTable.DoOnNewRecord code then this wouldn't help you, but while that
> might be shortsightedness on the part of whoever wrote the
> TTable.DoOnNewRecord code, it wouldn't be an intrinsic OOP model flaw.
>
> Cheers,
>
> Carl Reynolds Ph: +64-9-4154790
> CJN Technologies Ltd. Fax: +64-9-4154791
> [EMAIL PROTECTED] DDI: +64-9-4154795
> PO Box 302-278, North Harbour, Auckland, New Zealand
> 12 Piermark Drive, North Harbour Estate, Auckland, NZ
> Visit our website at http://www.cjntech.co.nz/
>
> > -----Original Message-----
> > From: [EMAIL PROTECTED] [SMTP:[EMAIL PROTECTED]]
> > Sent: Thursday, May 13, 1999 10:52 PM
> > To: Multiple recipients of list delphi
> > Subject: [DUG]: Another Axe thru the OOP model
> >
> > I hesitated posting this message, lest I be seen bashing Borland
> > again. But really, some of you need to know this (if you havent been
> > hit by it by now).
> >
> > At first glance this should work fine, just the perfect hook for
> > initalising fields in a new record......
> >
> > type
> > TTableCmn = class(TTable)
> > procedure DoOnNewRecord; override;
> > end;
> >
> > TTable1 = class(TTableCmn)
> > procedure DoOnNewRecord; override;
> > end;
> >
> > implementation
> >
> > procedure TTableCmn.DoOnNewRecord;
> > begin
> > inherited; /// the normal thing to do
> > FieldByName ('CommonField').AsInteger := 1;
> > end;
> >
> > procedure TTable1.DoOnNewRecord;
> > begin
> > inherited; /// let the parent initialise common stuff
> > FieldByName ('MyField').AsText := 'blah';
> > end;
> >
> >
> > But, the dratted DoOnNewRecord in TTable/TDataSet calls the forms
> > OnNewRecord event. If this is assigned, it gets executed first, but
> > surely, normally I want this executed last.
> >
> > And no, you cant call inherited last in the overridden methods. You
> > have to redo all the code on ever overridden method. That is, the
> > prime concept of building up behaviour neatly falls down.
> >
> > It would appear that this applies to all the Onxxxxx events in the
> > VCL. So beware when writing families of components.
> >
> > Regards
> >
> > Rohit
> >
> > ======================================================================
> > CFL - Computer Fanatics Ltd. 21 Barry's Point Road, AKL, New Zealand
> > PH (649) 489-2280
> > FX (649) 489-2290
> > email [EMAIL PROTECTED] or [EMAIL PROTECTED]
> > ======================================================================
> >
> > ----------------------------------------------------------------------
> > -----
> > New Zealand Delphi Users group - Delphi List -
> > [EMAIL PROTECTED]
> > Website: http://www.delphi.org.nz
>
> ------ =_NextPart_000_01BE9CD3.AA8BCE20
> Content-Type: application/ms-tnef
> Content-Transfer-Encoding: base64
>
> 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
> ica6UgKZd1CWwyD+VRawqjCqYGVw7MH/MBUVrkyWcv8wlrRAlrQufgDmZwlXby8gV4FkcFCCX19q
> QBe8LFIeJWujfWwwAAEd4AAAAwAmAAAAAAADAC4AAAAAAAsAAgABAAAAHgBwAAEAAAAtAAAAW0RV
> R106ICAgICAgICBBbm90aGVyIEF4ZSB0aHJ1IHRoZSBPT1AgbW9kZWwAAAAAAgFxAAEAAAAbAAAA
> Ab6cy97odmaXCwQUEdOaKABgCJYn6gAAb+YgAB4AQhABAAAAMAAAADwxOTk5MDUxMjIyNDIuS0FB
> Mjc1ODRAcGxhbmV0LmFrLnBsYW5ldC5nZW4ubno+AEAAOQAg6Fqq05y+AQMA8T8JBAAAHgAxQAEA
> AAAFAAAAQ0FSTAAAAAADABpAAAAAAB4AMEABAAAABQAAAENBUkwAAAAAAwAZQAAAAAADAP0/5AQA
> AAMAgBD/////AgFHAAEAAAA8AAAAYz1OWjthPSA7cD1DSk4gVGVjaG5vbG9naWVzO2w9Q0pOTlRT
> RVJWRVItOTkwNTEzMDAwMDUyWi0xOTQAAgH5PwEAAABZAAAAAAAAANynQMjAQhAatLkIACsv4YIB
> AAAAAAAAAC9PPUNKTiBURUNITk9MT0dJRVMgTFREL09VPUNKTk5UU0VSVkVSL0NOPVJFQ0lQSUVO
> VFMvQ049Q0FSTAAAAAAeAPg/AQAAAA4AAABDYXJsIFJleW5vbGRzAAAAHgA4QAEAAAAFAAAAQ0FS
> TAAAAAACAfs/AQAAAFkAAAAAAAAA3KdAyMBCEBq0uQgAKy/hggEAAAAAAAAAL089Q0pOIFRFQ0hO
> T0xPR0lFUyBMVEQvT1U9Q0pOTlRTRVJWRVIvQ049UkVDSVBJRU5UUy9DTj1DQVJMAAAAAB4A+j8B
> AAAADgAAAENhcmwgUmV5bm9sZHMAAAAeADlAAQAAAAUAAABDQVJMAAAAAEAABzBAv02dzZy+AUAA
> CDAgzouq05y+AR4APQABAAAABQAAAFJFOiAAAAAAHgAdDgEAAAAtAAAAW0RVR106ICAgICAgICBB
> bm90aGVyIEF4ZSB0aHJ1IHRoZSBPT1AgbW9kZWwAAAAAHgA1EAEAAABDAAAAPDQxNTkwMURFNDdE
> NEQzMTE5OTlEMDA2MDA4OTYyN0VBMDQzNjExQGNqbm50c2VydmVyLmNqbnRlY2guY28ubno+AAAL
> ACkAAAAAAAsAIwAAAAAAAwAGEJMdcgkDAAcQMgoAAAMAEBAAAAAAAwAREAAAAAAeAAgQAQAAAGUA
> AABISVJPSElUSVVOREVSU1RBTkRZT1VSRlJVU1RSQVRJT05XSVRIVEhFVFRBQkxFREVTSUdOLEJV
> VFlPVURPTlRIQVZFVE9GT0xMT1dUSEFUREVTSUdOSU5JVFNERVNDRU5EQU5UAAAAAAIBfwABAAAA
> QwAAADw0MTU5MDFERTQ3RDREMzExOTk5RDAwNjAwODk2MjdFQTA0MzYxMUBjam5udHNlcnZlci5j
> am50ZWNoLmNvLm56PgAA0hg=
>
> ------ =_NextPart_000_01BE9CD3.AA8BCE20--
> ---------------------------------------------------------------------------
> New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
> Website: http://www.delphi.org.nz
>
Rohit
======================================================================
CFL - Computer Fanatics Ltd. 21 Barry's Point Road, AKL, New Zealand
PH (649) 489-2280
FX (649) 489-2290
email [EMAIL PROTECTED] or [EMAIL PROTECTED]
======================================================================
---------------------------------------------------------------------------
New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
Website: http://www.delphi.org.nz