Created
March 2, 2011 15:57
-
-
Save clauwn/851145 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
unit uCCRefreshTitleFieldOnChange; | |
interface | |
uses SysUtils, Windows, Classes, SuperGlobal, DB; | |
Type _PTField = ^TField; | |
Type TRefreshTitleOnFieldChange = Class(TObject) | |
Constructor Create(); overload; | |
Destructor Destroy(); override; | |
Strict Private | |
m_MyField: _PTField; | |
m_DynEvent_Orig_OnChange: Procedure(Sender: TField) Of Object; | |
m_NotifyEvent: TNotifyEvent; | |
Procedure Setm_MyField(const Value: _PTField); | |
Procedure p_DynEvent_NewOnChange(Sender: TField); | |
Public | |
Constructor Create(const Field: _PTField); overload; | |
Property Field: _PTField Read m_MyField Write Setm_MyField; | |
Property OnAlert: TNotifyEvent Read m_NotifyEvent Write m_NotifyEvent; | |
end; | |
implementation | |
{ TRefreshTitleOnFieldChange } | |
constructor TRefreshTitleOnFieldChange.Create; | |
begin | |
inherited Create(); | |
m_MyField:= NIL; | |
m_DynEvent_Orig_OnChange:= NIL; | |
end; | |
constructor TRefreshTitleOnFieldChange.Create(const Field: _PTField); | |
begin | |
Create(); | |
Self.Field:= Field; | |
end; | |
destructor TRefreshTitleOnFieldChange.Destroy; | |
begin | |
Self.OnAlert:= NIL; | |
inherited; | |
end; | |
procedure TRefreshTitleOnFieldChange.p_DynEvent_NewOnChange(Sender: TField); | |
begin | |
If Assigned(m_DynEvent_Orig_OnChange) Then | |
m_DynEvent_Orig_OnChange(Sender); | |
If Assigned(Self.OnAlert) Then | |
Self.OnAlert(Self); | |
end; | |
procedure TRefreshTitleOnFieldChange.Setm_MyField(const Value: _PTField); | |
begin | |
m_MyField:= Value; | |
If Assigned(m_MyField.OnChange) Then | |
m_DynEvent_Orig_OnChange:= m_MyField.OnChange; | |
m_MyField.OnChange:= p_DynEvent_NewOnChange; | |
end; | |
end. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment