Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- Remove the persistent flag from selected records
- }
- unit UserScript;
- var
- DoEnableSame: boolean;
- s: string;
- i: integer;
- // Called before processing
- // You can remove it if script doesn't require initialization code
- function Initialize: integer;
- begin
- Result := 0;
- // ask for enable or disable on parent
- i := MessageDlg('Enable same as parent [YES] or opposite parent [NO]?', mtConfirmation, [mbYes, mbNo, mbCancel], 0);
- if i = mrYes then DoEnableSame := true else
- if i = mrNo then DoEnableSame := false else begin
- Result := 1;
- Exit;
- end;
- // ask for string
- if not InputQuery('Enter ', 'Parent Ref', s) then begin
- Result := 2;
- Exit;
- end;
- end;
- // called for every record selected in xEdit
- function Process(e: IInterface): integer;
- var
- Sig: string;
- xesp: IInterface;
- begin
- Result := 0;
- if not (IsEditable(e)) and
- (Sig <> 'REFR')
- then
- Exit;
- xesp := ElementByPath(e, 'XESP');
- // processing code goes here
- SetElementEditValues(xesp, 'Reference', FixedFormID(s));
- if DoEnableSame then
- SetElementEditValues(xesp, 'Flags', '1')
- else
- SetElementEditValues(xesp, 'Flags', '0');
- // AddMessage('Changed master to' + s + '. Enabled state opposite parent ' + DoEnableSame);
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement