OtherMeasureFme.pas 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. unit OtherMeasureFme;
  2. interface
  3. uses
  4. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5. Dialogs, JimPages, XPMenu, ComCtrls, ToolWin, ExtCtrls, sdGridDBA, ZJGrid,
  6. ProjectData;
  7. type
  8. TOtherMeasureFrame = class(TFrame)
  9. pnlRelaXmjType: TPanel;
  10. tbToolsButton: TToolBar;
  11. tobtnPhase: TToolButton;
  12. tobtnOnce: TToolButton;
  13. xpm: TXPMenu;
  14. pnlOtherMeasure: TPanel;
  15. jpsOtherMeasure: TJimPages;
  16. jpsOtherMeasurePhase: TJimPage;
  17. jpsOtherMeasureOnce: TJimPage;
  18. zgPhase: TZJGrid;
  19. zgOnce: TZJGrid;
  20. saOnce: TsdGridDBA;
  21. saPhase: TsdGridDBA;
  22. procedure tobtnPhaseClick(Sender: TObject);
  23. procedure zgPhaseKeyDown(Sender: TObject; var Key: Word;
  24. Shift: TShiftState);
  25. procedure zgPhaseCellGetColor(Sender: TObject; ACoord: TPoint;
  26. var AColor: TColor);
  27. private
  28. FProjectData: TProjectData;
  29. { Private declarations }
  30. public
  31. constructor Create(AProjectData: TProjectData);
  32. destructor Destroy; override;
  33. procedure ResetViewControl;
  34. end;
  35. implementation
  36. uses
  37. OtherMeasurePhaseDm, sdDB;
  38. {$R *.dfm}
  39. constructor TOtherMeasureFrame.Create(AProjectData: TProjectData);
  40. begin
  41. inherited Create(nil);
  42. FProjectData := AProjectData;
  43. saPhase.DataView := FProjectData.OtherMeasurePhaseData.sdvPhase;
  44. saOnce.DataView := FProjectData.OtherMeasureOnceData.sdvOnce;
  45. end;
  46. destructor TOtherMeasureFrame.Destroy;
  47. begin
  48. inherited;
  49. end;
  50. procedure TOtherMeasureFrame.ResetViewControl;
  51. begin
  52. saPhase.Columns.ColumnByName('CurTotalPrice').ReadOnly := TProjectData(FProjectData).StageDataReadOnly;
  53. if TProjectData(FProjectData).AllowInsert then
  54. saPhase.Options := [aoAllowInsert, aoAllowEdit, aoAllowDelete, aoAutoInsert, aoAllowUpMove, aoAllowDownMove]
  55. else
  56. saPhase.Options := [];
  57. end;
  58. procedure TOtherMeasureFrame.tobtnPhaseClick(Sender: TObject);
  59. begin
  60. jpsOtherMeasure.ActivePageIndex := TToolButton(Sender).Tag;
  61. tobtnPhase.Down := tobtnPhase.Tag = TToolButton(Sender).Tag;
  62. tobtnOnce.Down := tobtnOnce.Tag = TToolButton(Sender).Tag;
  63. end;
  64. procedure TOtherMeasureFrame.zgPhaseKeyDown(Sender: TObject; var Key: Word;
  65. Shift: TShiftState);
  66. begin
  67. if (ssCtrl in Shift) and (ssShift in Shift) and (ssAlt in Shift)
  68. and (Key in [68, 100]) then // 'd', 'D'
  69. begin
  70. with FProjectData.OtherMeasurePhaseData do
  71. FilterDeletedRec := not FilterDeletedRec;
  72. end;
  73. end;
  74. procedure TOtherMeasureFrame.zgPhaseCellGetColor(Sender: TObject;
  75. ACoord: TPoint; var AColor: TColor);
  76. var
  77. Rec: TsdDataRecord;
  78. begin
  79. Rec := saPhase.DataView.Records[ACoord.Y-1];
  80. if Assigned(Rec) and Rec.ValueByName('Deleted').AsBoolean then
  81. AColor := $00D5D5D5
  82. else
  83. AColor := clWindow;
  84. end;
  85. end.