Guest User

Untitled

a guest
Apr 21st, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. TRec = record
  2. Name: string;
  3. Age: string;
  4. etc...
  5. end;
  6.  
  7. TParameterRec = record
  8. private
  9. fRec: TRec;
  10. procedure SetRec(Value: TRec);
  11. public
  12. property Rec: TRec read fRec write SetRec;
  13. end;
  14.  
  15. TSampleClass = class
  16. private
  17. fParameters: TParameterRec;
  18. protected
  19. ValidateParameters;
  20. ValidateParameters_Record(aRec: TRec);
  21. public
  22. property Parameters: TParameterRec read fParameters write SetParameters;
  23. end;
  24.  
  25. procedure TSampleClass.SetParameters(Value: TParameterRec);
  26. begin
  27. fParameters := Value;
  28. ValidateParameters;
  29. end;
  30.  
  31. procedure TSampleClass.ValidateParameters;
  32. begin
  33. ValidateParameters_Record(fParameters.Rec);
  34. end;
  35.  
  36. procedure TSampleClass.ValidateParameters_Record(
  37. aRec: TRec);
  38. begin
  39. if aRec.Name = '' then
  40. aRec.Name := 'something'; //Here nothing happens, outside name will be empty
  41. end;
  42.  
  43. procedure TParameterRec.SetRec(Value: TRec);
  44. begin
  45. fRec := Value;
  46. end;
  47.  
  48. ....
  49. var
  50. SampleClass: TSampleClass;
  51. ParamRec: TParameterRec;
  52. begin
  53. SampleClass := TSampleClass.Create;
  54. try
  55. ParamRec.Rec := SomeRec; //It has default values, Name is empty
  56. SampleClass.Parameters := ParamRec;
  57. ....
  58.  
  59. end;
Add Comment
Please, Sign In to add comment