123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- {
- This file is part of the Free Pascal run time library.
- Copyright (c) 2003 by the Free Pascal development team
- <What does this file>
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- **********************************************************************}
- Constructor TDataModule.Create(AOwner: TComponent);
- begin
- CreateNew(AOwner);
- if (ClassType <> TDataModule) and
- not (csDesigning in ComponentState) then
- begin
- if not InitInheritedComponent(Self, TDataModule) then
- raise EStreamError.CreateFmt(SErrNoSTreaming, [ClassName]);
- if OldCreateOrder then
- DoCreate;
- end;
- end;
- Constructor TDataModule.CreateNew(AOwner: TComponent);
- begin
- CreateNew(AOwner,0);
- end;
- constructor TDataModule.CreateNew(AOwner: TComponent; CreateMode: Integer);
- begin
- inherited Create(AOwner);
- if Assigned(AddDataModule) and (CreateMode>=0) then
- AddDataModule(Self);
- end;
- Procedure TDataModule.AfterConstruction;
- begin
- If not OldCreateOrder then
- DoCreate;
- end;
- Procedure TDataModule.BeforeDestruction;
- begin
- Destroying;
- RemoveFixupReferences(Self, '');
- if not OldCreateOrder then
- DoDestroy;
- end;
- destructor TDataModule.Destroy;
- begin
- if OldCreateOrder then
- DoDestroy;
- if Assigned(RemoveDataModule) then
- RemoveDataModule(Self);
- inherited Destroy;
- end;
- Procedure TDataModule.DoCreate;
- begin
- if Assigned(FOnCreate) then
- try
- FOnCreate(Self);
- except
- if not HandleCreateException then
- raise;
- end;
- end;
- Procedure TDataModule.DoDestroy;
- begin
- if Assigned(FOnDestroy) then
- try
- FOnDestroy(Self);
- except
- if Assigned(ApplicationHandleException) then
- ApplicationHandleException(Self);
- end;
- end;
- procedure TDataModule.DefineProperties(Filer: TFiler);
- var
- Ancestor : TDataModule;
- HaveData : Boolean;
- begin
- inherited DefineProperties(Filer);
- Ancestor := TDataModule(Filer.Ancestor);
- HaveData:=(Ancestor=Nil) or
- (FDSize.X<>Ancestor.FDSize.X) or
- (FDSize.Y<>Ancestor.FDSize.Y) or
- (FDPos.Y<>Ancestor.FDPos.Y) or
- (FDPos.X<>Ancestor.FDPos.X);
- Filer.DefineProperty('Height', @ReadH, @WriteH, HaveData);
- Filer.DefineProperty('HorizontalOffset', @ReadL, @WriteL, HaveData);
- Filer.DefineProperty('VerticalOffset', @ReadT,@WriteT, HaveData);
- Filer.DefineProperty('Width', @ReadW, @WriteW, HaveData);
- end;
- procedure TDataModule.GetChildren(Proc: TGetChildProc; Root: TComponent);
- var
- I : Integer;
- begin
- inherited GetChildren(Proc, Root);
- if (Root=Self) then
- for I:=0 to ComponentCount-1 do
- If Not Components[I].HasParent then
- Proc(Components[i]);
- end;
- function TDataModule.HandleCreateException: Boolean;
- begin
- Result:=Assigned(ApplicationHandleException);
- if Result then
- ApplicationHandleException(Self);
- end;
- Procedure TDataModule.ReadState(Reader: TReader);
- begin
- FOldOrder := false;
- inherited ReadState(Reader);
- end;
- Procedure TDataModule.ReadT(Reader: TReader);
- begin
- FDPos.Y := Reader.ReadInteger;
- end;
- Procedure TDataModule.WriteT(Writer: TWriter);
- begin
- Writer.WriteInteger(FDPos.Y);
- end;
- Procedure TDataModule.ReadL(Reader: TReader);
- begin
- FDPos.X := Reader.ReadInteger;
- end;
- Procedure TDataModule.WriteL(Writer: TWriter);
- begin
- Writer.WriteInteger(FDPos.X);
- end;
- Procedure TDataModule.ReadW(Reader: TReader);
- begin
- FDSIze.X := Reader.ReadInteger;
- end;
- Procedure TDataModule.WriteW(Writer: TWriter);
- begin
- Writer.WriteInteger(FDSIze.X);
- end;
- Procedure TDataModule.ReadH(Reader: TReader);
- begin
- FDSIze.Y := Reader.ReadInteger;
- end;
- Procedure TDataModule.WriteH(Writer: TWriter);
- begin
- Writer.WriteInteger(FDSIze.Y);
- end;
|