git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.UserControl@5 970f2627-a9d2-4748-b3d4-b5283c4fe7db
393 lines
14 KiB
ObjectPascal
393 lines
14 KiB
ObjectPascal
unit UCReg;
|
||
|
||
interface
|
||
|
||
{$I 'UserControl.inc'}
|
||
|
||
uses
|
||
Classes,
|
||
Controls,
|
||
DesignEditors,
|
||
DesignIntf,
|
||
ToolsAPI,
|
||
TypInfo,
|
||
UCBase;
|
||
|
||
type
|
||
TUCComponentsVarProperty = class(TStringProperty)
|
||
function GetAttributes: TPropertyAttributes; override;
|
||
procedure Edit; override;
|
||
function GetValue: String; override;
|
||
end;
|
||
|
||
|
||
TUCControlsEditor = class(TComponentEditor)
|
||
procedure Edit; override;
|
||
procedure ExecuteVerb(Index: Integer); override;
|
||
function GetVerb(Index: Integer): String; override;
|
||
function GetVerbCount: Integer; override;
|
||
end;
|
||
|
||
TUserControlEditor = class(TComponentEditor)
|
||
procedure Edit; override;
|
||
procedure ExecuteVerb(Index: Integer); override;
|
||
function GetVerb(Index: Integer): String; override;
|
||
function GetVerbCount: Integer; override;
|
||
end;
|
||
|
||
TUCAboutVarProperty = class(TStringProperty)
|
||
function GetAttributes: TPropertyAttributes; override;
|
||
procedure Edit; override;
|
||
function GetValue: String; override;
|
||
end;
|
||
|
||
{$IFDEF DELPHI7}
|
||
TUCAboutXpStyleVarProperty = class(TStringProperty)
|
||
function GetAttributes: TPropertyAttributes; override;
|
||
procedure Edit; override;
|
||
function GetValue: String; override;
|
||
end;
|
||
{$ENDIF}
|
||
|
||
procedure Register;
|
||
procedure ShowControlsEditor(Componente: TUCControls);
|
||
procedure ShowUserControlsEditor(Componente: TUserControl);
|
||
|
||
implementation
|
||
|
||
uses
|
||
Dialogs,
|
||
Forms,
|
||
SysUtils,
|
||
UCAbout,
|
||
UCIdle,
|
||
UCObjSel_U,
|
||
{$IFDEF DELPHI7}
|
||
UCAboutXPStyle_U,
|
||
UCXPStyle,
|
||
{$ENDIF}
|
||
UCEditorForm_U,
|
||
{$IFDEF Indy}
|
||
UCMail,
|
||
{$ENDIF}
|
||
ActnList,
|
||
ActnMan,
|
||
ActnMenus,
|
||
Menus,
|
||
StdCtrls,
|
||
UCSettings,
|
||
Variants;
|
||
|
||
procedure Register;
|
||
begin
|
||
RegisterComponents('UC Main',
|
||
[TUserControl,
|
||
TUCSettings,
|
||
TUCControls,
|
||
TUCApplicationMessage,
|
||
TUCIdle,
|
||
TUCHistorico
|
||
{$IFDEF Indy}
|
||
, TMailUserControl
|
||
{$ENDIF}
|
||
{$IFDEF DELPHI7}
|
||
, TUCXPStyle
|
||
{$ENDIF}
|
||
]);
|
||
|
||
{$IFDEF DELPHI7}
|
||
RegisterPropertyEditor(TypeInfo(TUCAboutXpStyleVar), nil, '', TUCAboutXpStyleVarProperty);
|
||
{$ENDIF}
|
||
|
||
RegisterPropertyEditor(TypeInfo(TUCAboutVar), TUserControl, 'About', TUCAboutVarProperty);
|
||
RegisterPropertyEditor(TypeInfo(TUCComponentsVar), TUserControl, 'Components', TUCComponentsVarProperty);
|
||
RegisterComponentEditor(TUCcontrols, TUCControlsEditor);
|
||
RegisterComponentEditor(TUserControl, TUserControlEditor);
|
||
end;
|
||
|
||
{ TUCComponentsVarProperty }
|
||
procedure TUCComponentsVarProperty.Edit;
|
||
begin
|
||
ShowControlsEditor(TUCControls(GetComponent(0)));
|
||
end;
|
||
|
||
function TUCComponentsVarProperty.GetAttributes: TPropertyAttributes;
|
||
begin
|
||
Result := [paDialog, paReadOnly];
|
||
end;
|
||
|
||
function TUCComponentsVarProperty.GetValue: String;
|
||
begin
|
||
Result := 'Components...';
|
||
end;
|
||
|
||
{ TUCAboutVarProperty }
|
||
|
||
procedure TUCAboutVarProperty.Edit;
|
||
begin
|
||
with TAboutForm.Create(nil) do
|
||
begin
|
||
ShowModal;
|
||
Free;
|
||
end;
|
||
end;
|
||
|
||
function TUCAboutVarProperty.GetAttributes: TPropertyAttributes;
|
||
begin
|
||
Result := [paDialog, paReadOnly];
|
||
end;
|
||
|
||
function TUCAboutVarProperty.GetValue: String;
|
||
begin
|
||
Result := 'Versao ' + UCVersion;
|
||
end;
|
||
|
||
procedure ShowUserControlsEditor(Componente: TUserControl);
|
||
var
|
||
Editor: IOTAEditor;
|
||
Modulo: IOTAModule;
|
||
FormEditor: IOTAFormEditor;
|
||
I: Integer;
|
||
Formulario: TUCEditorForm;
|
||
UserControl: TUserControl;
|
||
Controle: String;
|
||
UserActionMenuItem: String;
|
||
UserProfileActionMenuItem: String;
|
||
LogControlActionMeuItem: String;
|
||
UserPasswordChangeActionMenuItem: String;
|
||
FormularioDono: TForm;
|
||
begin
|
||
UserControl := Componente;
|
||
FormularioDono := TForm(UserControl.Owner);
|
||
try
|
||
Formulario := TUCEditorForm.Create(nil, UserControl);
|
||
|
||
if Formulario.ShowModal = mrOk then
|
||
begin
|
||
with UserControl do
|
||
begin
|
||
ApplicationID := Formulario.edtApplicationID.Text;
|
||
AutoStart := Formulario.ckAutoStart.Checked;
|
||
CheckValidationKey := Formulario.ckValidationKey.Checked;
|
||
EncryptKey := Formulario.spedtEncryptKey.Value;
|
||
TableRights.TableName := Formulario.edtTableRights.Text;
|
||
TableUsers.TableName := Formulario.edtTableUsers.Text;
|
||
NotAllowedItems.ActionVisible := Formulario.ckActionVisible.Checked;
|
||
NotAllowedItems.MenuVisible := Formulario.ckMenuVisible.Checked;
|
||
Criptografia := TUCCriptografia(Formulario.cbCriptografia.ItemIndex);
|
||
LoginMode := TUCLoginMode(Formulario.cbLoginMode.ItemIndex);
|
||
|
||
if Formulario.cbActionList.ItemIndex >= 0 then
|
||
Controle := Formulario.cbActionList.Text;
|
||
if Formulario.cbActionMainMenuBar.ItemIndex >= 0 then
|
||
Controle := Formulario.cbActionMainMenuBar.Text;
|
||
|
||
if Formulario.cbActionManager.ItemIndex >= 0 then
|
||
Controle := Formulario.cbActionManager.Text;
|
||
if Formulario.cbMainMenu.ItemIndex >= 0 then
|
||
Controle := Formulario.cbMainMenu.Text;
|
||
|
||
if Formulario.cbUserAction.ItemIndex >= 0 then
|
||
UserActionMenuItem := Formulario.cbUserAction.Text;
|
||
if Formulario.cbUserMenuItem.ItemIndex >= 0 then
|
||
UserActionMenuItem := Formulario.cbUserMenuItem.Text;
|
||
|
||
if Formulario.cbUserProfileAction.ItemIndex >= 0 then
|
||
UserProfileActionMenuItem := Formulario.cbUserProfileAction.Text;
|
||
if Formulario.cbUserProfileMenuItem.ItemIndex >= 0 then
|
||
UserProfileActionMenuItem := Formulario.cbUserProfileMenuItem.Text;
|
||
|
||
if Formulario.cbLogControlAction.ItemIndex >= 0 then
|
||
LogControlActionMeuItem := Formulario.cbLogControlAction.Text;
|
||
if Formulario.cbLogControlMenuItem.ItemIndex >= 0 then
|
||
LogControlActionMeuItem := Formulario.cbLogControlMenuItem.Text;
|
||
|
||
if Formulario.cbUserPasswordChangeAction.ItemIndex >= 0 then
|
||
UserPasswordChangeActionMenuItem := Formulario.cbUserPasswordChangeAction.Text;
|
||
if Formulario.cbUserPasswordChangeMenuItem.ItemIndex >= 0 then
|
||
UserPasswordChangeActionMenuItem := Formulario.cbUserPasswordChangeMenuItem.Text;
|
||
|
||
|
||
for I := 0 to FormularioDono.ComponentCount - 1 do
|
||
begin
|
||
if (FormularioDono.Components[I].Name = Controle) and (Formulario.cbActionList.ItemIndex >= 0) then
|
||
ControlRight.ActionList := TActionList(FormularioDono.Components[I]);
|
||
if (FormularioDono.Components[I].Name = Controle) and (Formulario.cbActionMainMenuBar.ItemIndex >= 0) then
|
||
ControlRight.ActionMainMenuBar := TActionMainMenuBar(UserControl.Owner.Components[I]);
|
||
if (FormularioDono.Components[I].Name = Controle) and (Formulario.cbActionManager.ItemIndex >= 0) then
|
||
ControlRight.ActionManager := TActionManager(FormularioDono.Components[I]);
|
||
if (FormularioDono.Components[I].Name = Controle) and (Formulario.cbMainMenu.ItemIndex >= 0) then
|
||
ControlRight.MainMenu := TMainMenu(FormularioDono.Components[I]);
|
||
if (FormularioDono.Components[I].Name = UserActionMenuItem) and (Formulario.cbUserAction.ItemIndex >= 0) then
|
||
User.Action := TAction(FormularioDono.Components[I]);
|
||
if (FormularioDono.Components[I].Name = UserActionMenuItem) and (Formulario.cbUserMenuItem.ItemIndex >= 0) then
|
||
User.MenuItem := TMenuItem(FormularioDono.Components[I]);
|
||
if (FormularioDono.Components[I].Name = UserProfileActionMenuItem) and (Formulario.cbUserProfileAction.ItemIndex >= 0) then
|
||
UserProfile.Action := TAction(FormularioDono.Components[I]);
|
||
if (FormularioDono.Components[I].Name = UserProfileActionMenuItem) and (Formulario.cbUserProfileMenuItem.ItemIndex >= 0) then
|
||
UserProfile.MenuItem := TMenuItem(FormularioDono.Components[I]);
|
||
if (FormularioDono.Components[I].Name = LogControlActionMeuItem) and (Formulario.cbLogControlAction.ItemIndex >= 0) then
|
||
LogControl.Action := TAction(FormularioDono.Components[I]);
|
||
if (FormularioDono.Components[I].Name = LogControlActionMeuItem) and (Formulario.cbLogControlMenuItem.ItemIndex >= 0) then
|
||
LogControl.MenuItem := TMenuItem(FormularioDono.Components[I]);
|
||
if (FormularioDono.Components[I].Name = UserPasswordChangeActionMenuItem) and (Formulario.cbUserPasswordChangeAction.ItemIndex >= 0) then
|
||
UserPasswordChange.Action := TAction(FormularioDono.Components[I]);
|
||
if (FormularioDono.Components[I].Name = UserPasswordChangeActionMenuItem) and (Formulario.cbUserPasswordChangeMenuItem.ItemIndex >= 0) then
|
||
UserPasswordChange.MenuItem := TMenuItem(FormularioDono.Components[I]);
|
||
end;
|
||
|
||
User.UsePrivilegedField := Formulario.ckUserUsePrivilegedField.Checked;
|
||
User.ProtectAdministrator := Formulario.ckUserProtectAdministrator.Checked;
|
||
UserProfile.Active := Formulario.ckUserProfileActive.Checked;
|
||
UserPasswordChange.ForcePassword := Formulario.ckUserPassowrdChangeForcePassword.Checked;
|
||
UserPasswordChange.MinPasswordLength := Formulario.spedtUserPasswordChangeMinPasswordLength.Value;
|
||
|
||
LogControl.TableLog := Formulario.edtLogControlTableLog.Text;
|
||
LogControl.Active := Formulario.ckLogControlActive.Checked;
|
||
|
||
Login.MaxLoginAttempts := Formulario.spedtMaxLoginAttempts.Value;
|
||
Login.GetLoginName := TUCGetLoginName(Formulario.cbGetLoginName.ItemIndex);
|
||
Login.InitialLogin.User := Formulario.edtInitialLoginUser.Text;
|
||
Login.InitialLogin.Password := Formulario.edtInitialLoginPassword.Text;
|
||
Login.InitialLogin.Email := Formulario.edtInitialLoginEmail.Text;
|
||
Login.InitialLogin.InitialRights := Formulario.mmInitialRights.Lines;
|
||
Login.AutoLogin.Active := Formulario.ckLoginAutologinActive.Checked;
|
||
Login.AutoLogin.User := Formulario.edtLoginAutoLoginUser.Text;
|
||
Login.AutoLogin.Password := Formulario.edtLoginAutoLoginPassword.Text;
|
||
Login.AutoLogin.MessageOnError := Formulario.ckLoginAutoLoginMessageOnError.Checked;
|
||
UserSettings.Login.TopImage := Formulario.imgTop.Picture;
|
||
UserSettings.Login.LeftImage := Formulario.imgLeft.Picture;
|
||
UserSettings.Login.BottomImage := Formulario.imgBottom.Picture;
|
||
end;
|
||
|
||
Modulo := (BorlandIDEServices as IOTAModuleServices).CurrentModule;
|
||
for I := 0 to Modulo.GetModuleFileCount - 1 do
|
||
begin
|
||
Editor := Modulo.GetModuleFileEditor(I);
|
||
Editor.QueryInterface(IOTAFormEditor, FormEditor);
|
||
if FormEditor <> nil then
|
||
begin
|
||
FormEditor.MarkModified;
|
||
Break;
|
||
end;
|
||
end;
|
||
end;
|
||
finally
|
||
SysUtils.FreeAndNil(Formulario);
|
||
end;
|
||
end;
|
||
|
||
procedure ShowControlsEditor(Componente: TUCControls);
|
||
var
|
||
FUCControl: TUCControls;
|
||
FEditor: IOTAEditor;
|
||
FModulo: IOTAModule;
|
||
FFormEditor: IOTAFormEditor;
|
||
I: Integer;
|
||
begin
|
||
FUCControl := Componente;
|
||
if not Assigned(FUCControl.UserControl) then
|
||
begin
|
||
MessageDlg('A propriedade UserControl tem que ser informada e o componente ' + #13 + #10 + 'tem que estar vis<69>vel!', mtInformation, [mbOK], 0);
|
||
Exit;
|
||
end;
|
||
|
||
with TUCObjSel.Create(nil) do
|
||
begin
|
||
FForm := TCustomForm(FUCControl.Owner);
|
||
FUserControl := FUCControl.UserControl;
|
||
FInitialObjs := TStringList.Create;
|
||
TUCControls(Componente).ListComponents(FForm.Name, FInitialObjs);
|
||
lbGroup.Caption := TUCControls(Componente).GroupName;
|
||
ShowModal;
|
||
Free;
|
||
end;
|
||
|
||
FModulo := (BorlandIDEServices as IOTAModuleServices).FindFormModule(FUCControl.UserControl.Owner.Name);
|
||
if FModulo = nil then
|
||
begin
|
||
ShowMessage('Modulo ' + FUCControl.UserControl.Owner.Name + ' nao encontrado!');
|
||
Exit;
|
||
end
|
||
else
|
||
for I := 0 to FModulo.GetModuleFileCount - 1 do
|
||
begin
|
||
FEditor := FModulo.GetModuleFileEditor(I);
|
||
FEditor.QueryInterface(IOTAFormEditor, FFormEditor);
|
||
if FFormEditor <> nil then
|
||
begin
|
||
FFormEditor.MarkModified;
|
||
Break;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
{$IFDEF DELPHI7}
|
||
{ TUCAboutXpStyleVarProperty }
|
||
|
||
procedure TUCAboutXpStyleVarProperty.Edit;
|
||
begin
|
||
with TUCAboutXpStyle.Create(nil) do
|
||
begin
|
||
ShowModal;
|
||
Free;
|
||
end;
|
||
end;
|
||
|
||
function TUCAboutXpStyleVarProperty.GetAttributes: TPropertyAttributes;
|
||
begin
|
||
Result := [paDialog, paReadOnly];
|
||
end;
|
||
|
||
function TUCAboutXpStyleVarProperty.GetValue: String;
|
||
begin
|
||
Result := 'About...';
|
||
end;
|
||
{$ENDIF}
|
||
|
||
{TUCControlsEditor}
|
||
procedure TUCControlsEditor.Edit;
|
||
begin
|
||
ShowControlsEditor(TUCControls(Component));
|
||
end;
|
||
|
||
procedure TUCControlsEditor.ExecuteVerb(Index: Integer);
|
||
begin
|
||
Edit;
|
||
end;
|
||
|
||
function TUCControlsEditor.GetVerb(Index: Integer): String;
|
||
begin
|
||
Result := '&Select Components...';
|
||
end;
|
||
|
||
function TUCControlsEditor.GetVerbCount: Integer;
|
||
begin
|
||
Result := 1;
|
||
end;
|
||
|
||
{ TUserControlEditor }
|
||
|
||
procedure TUserControlEditor.Edit;
|
||
begin
|
||
ShowUserControlsEditor(TUserControl(Component));
|
||
end;
|
||
|
||
procedure TUserControlEditor.ExecuteVerb(Index: Integer);
|
||
begin
|
||
Edit;
|
||
end;
|
||
|
||
function TUserControlEditor.GetVerb(Index: Integer): String;
|
||
begin
|
||
Result := 'Configurar...';
|
||
end;
|
||
|
||
function TUserControlEditor.GetVerbCount: Integer;
|
||
begin
|
||
Result := 1;
|
||
end;
|
||
|
||
end.
|
||
|