123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #pragma hdrstop
- #include "RightsExt.h"
- #include <Common.h>
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma link "Rights"
- #pragma link "GrayedCheckBox"
- #pragma link "PngImageList"
- #ifndef NO_RESOURCES
- #pragma resource "*.dfm"
- #endif
- //---------------------------------------------------------------------------
- __fastcall TRightsExtFrame::TRightsExtFrame(TComponent* Owner)
- : TRightsFrame(Owner)
- {
- }
- //---------------------------------------------------------------------------
- void __fastcall TRightsExtFrame::UpdateControls()
- {
- if (!OctalEdit->Focused())
- {
- UpdateOctalEdit();
- }
- TRightsFrame::UpdateControls();
- }
- //---------------------------------------------------------------------------
- void __fastcall TRightsExtFrame::UpdateByOctal()
- {
- if (!OctalEdit->Text.IsEmpty())
- {
- TRights R = Rights;
- R.Octal = OctalEdit->Text;
- Rights = R;
- }
- UpdateControls();
- OctalEdit->Modified = false;
- }
- //---------------------------------------------------------------------------
- void __fastcall TRightsExtFrame::UpdateOctalEdit()
- {
- TRights R = Rights;
- OctalEdit->Text = R.IsUndef ? UnicodeString() : R.Octal;
- OctalEdit->Modified = false;
- OctalEdit->SelectAll();
- }
- //---------------------------------------------------------------------------
- void __fastcall TRightsExtFrame::ForceUpdate()
- {
- TRightsFrame::ForceUpdate();
- UpdateOctalEdit();
- }
- //---------------------------------------------------------------------------
- void __fastcall TRightsExtFrame::OctalEditChange(TObject * /*Sender*/)
- {
- if (OctalEdit->Modified && OctalEdit->Text.Length() >= 3)
- {
- try
- {
- UpdateByOctal();
- }
- catch(...)
- {
- OctalEdit->Modified = true;
- }
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TRightsExtFrame::OctalEditExit(TObject * /*Sender*/)
- {
- if (!Visible)
- {
- // should happen only if popup is closed by esc key
- assert(Popup);
- // cancel changes
- ForceUpdate();
- }
- else if (OctalEdit->Modified)
- {
- // Now the text in OctalEdit is almost necessarily invalid, otherwise
- // OctalEditChange would have already cleared Modified flag
- try
- {
- UpdateByOctal();
- }
- catch(...)
- {
- OctalEdit->SelectAll();
- OctalEdit->SetFocus();
- throw;
- }
- }
- else
- {
- UpdateControls();
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TRightsExtFrame::SetPopup(bool value)
- {
- if (Popup != value)
- {
- TRightsFrame::SetPopup(value);
- CloseButton->Visible = value;
- CloseButton->Cancel = value;
- CloseButton->Default = value;
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TRightsExtFrame::CloseButtonClick(TObject * /*Sender*/)
- {
- CloseUp();
- }
- //---------------------------------------------------------------------------
|