dm.inc 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. {
  2. This file is part of the Free Pascal run time library.
  3. Copyright (c) 2003 by the Free Pascal development team
  4. <What does this file>
  5. See the file COPYING.FPC, included in this distribution,
  6. for details about the copyright.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  10. **********************************************************************}
  11. Constructor TDataModule.Create(AOwner: TComponent);
  12. begin
  13. CreateNew(AOwner);
  14. if (ClassType <> TDataModule) and
  15. not (csDesigning in ComponentState) then
  16. begin
  17. if not InitInheritedComponent(Self, TDataModule) then
  18. raise EStreamError.CreateFmt(SErrNoSTreaming, [ClassName]);
  19. if OldCreateOrder then
  20. DoCreate;
  21. end;
  22. end;
  23. Constructor TDataModule.CreateNew(AOwner: TComponent);
  24. begin
  25. CreateNew(AOwner,0);
  26. end;
  27. constructor TDataModule.CreateNew(AOwner: TComponent; CreateMode: Integer);
  28. begin
  29. inherited Create(AOwner);
  30. FDPPI := 96;
  31. if Assigned(AddDataModule) and (CreateMode>=0) then
  32. AddDataModule(Self);
  33. end;
  34. Procedure TDataModule.AfterConstruction;
  35. begin
  36. If not OldCreateOrder then
  37. DoCreate;
  38. end;
  39. Procedure TDataModule.BeforeDestruction;
  40. begin
  41. Destroying;
  42. RemoveFixupReferences(Self, '');
  43. if not OldCreateOrder then
  44. DoDestroy;
  45. end;
  46. destructor TDataModule.Destroy;
  47. begin
  48. if OldCreateOrder then
  49. DoDestroy;
  50. if Assigned(RemoveDataModule) then
  51. RemoveDataModule(Self);
  52. inherited Destroy;
  53. end;
  54. Procedure TDataModule.DoCreate;
  55. begin
  56. if Assigned(FOnCreate) then
  57. try
  58. FOnCreate(Self);
  59. except
  60. if not HandleCreateException then
  61. raise;
  62. end;
  63. end;
  64. Procedure TDataModule.DoDestroy;
  65. begin
  66. if Assigned(FOnDestroy) then
  67. try
  68. FOnDestroy(Self);
  69. except
  70. if Assigned(ApplicationHandleException) then
  71. ApplicationHandleException(Self);
  72. end;
  73. end;
  74. procedure TDataModule.DefineProperties(Filer: TFiler);
  75. var
  76. Ancestor : TDataModule;
  77. HaveData : Boolean;
  78. begin
  79. inherited DefineProperties(Filer);
  80. Ancestor := TDataModule(Filer.Ancestor);
  81. HaveData:=(Ancestor=Nil) or
  82. (FDSize.X<>Ancestor.FDSize.X) or
  83. (FDSize.Y<>Ancestor.FDSize.Y) or
  84. (FDPos.Y<>Ancestor.FDPos.Y) or
  85. (FDPos.X<>Ancestor.FDPos.X) or
  86. (FDPPI<>Ancestor.FDPPI);
  87. Filer.DefineProperty('Height', @ReadH, @WriteH, HaveData);
  88. Filer.DefineProperty('HorizontalOffset', @ReadL, @WriteL, HaveData);
  89. Filer.DefineProperty('VerticalOffset', @ReadT,@WriteT, HaveData);
  90. Filer.DefineProperty('Width', @ReadW, @WriteW, HaveData);
  91. Filer.DefineProperty('PPI', @ReadP, @WriteP, HaveData);
  92. end;
  93. procedure TDataModule.GetChildren(Proc: TGetChildProc; Root: TComponent);
  94. var
  95. I : Integer;
  96. begin
  97. inherited GetChildren(Proc, Root);
  98. if (Root=Self) then
  99. for I:=0 to ComponentCount-1 do
  100. If Not Components[I].HasParent then
  101. Proc(Components[i]);
  102. end;
  103. function TDataModule.HandleCreateException: Boolean;
  104. begin
  105. Result:=Assigned(ApplicationHandleException);
  106. if Result then
  107. ApplicationHandleException(Self);
  108. end;
  109. Procedure TDataModule.ReadP(Reader: TReader);
  110. begin
  111. FDPPI := Reader.ReadInteger;
  112. end;
  113. Procedure TDataModule.ReadState(Reader: TReader);
  114. begin
  115. FOldOrder := false;
  116. inherited ReadState(Reader);
  117. end;
  118. Procedure TDataModule.ReadT(Reader: TReader);
  119. begin
  120. FDPos.Y := Reader.ReadInteger;
  121. end;
  122. Procedure TDataModule.WriteT(Writer: TWriter);
  123. begin
  124. Writer.WriteInteger(FDPos.Y);
  125. end;
  126. Procedure TDataModule.ReadL(Reader: TReader);
  127. begin
  128. FDPos.X := Reader.ReadInteger;
  129. end;
  130. Procedure TDataModule.WriteL(Writer: TWriter);
  131. begin
  132. Writer.WriteInteger(FDPos.X);
  133. end;
  134. Procedure TDataModule.ReadW(Reader: TReader);
  135. begin
  136. FDSIze.X := Reader.ReadInteger;
  137. end;
  138. Procedure TDataModule.WriteP(Writer: TWriter);
  139. begin
  140. Writer.WriteInteger(FDPPI);
  141. end;
  142. Procedure TDataModule.WriteW(Writer: TWriter);
  143. begin
  144. Writer.WriteInteger(FDSIze.X);
  145. end;
  146. Procedure TDataModule.ReadH(Reader: TReader);
  147. begin
  148. FDSIze.Y := Reader.ReadInteger;
  149. end;
  150. Procedure TDataModule.WriteH(Writer: TWriter);
  151. begin
  152. Writer.WriteInteger(FDSIze.Y);
  153. end;