/// <summary>write the code for the designer file where the properties of the control are written</summary> public override ProcessTemplate SetControlProperties(TFormWriter writer, TControlDef ctrl) { base.SetControlProperties(writer, ctrl); if (ctrl.GetAttribute("AutoComplete").EndsWith("History")) { writer.SetControlProperty(ctrl, "AcceptNewValues", "true"); writer.SetEventHandlerToControl(ctrl.controlName, "AcceptNewEntries", "TAcceptNewEntryEventHandler", "FPetraUtilsObject.AddComboBoxHistory"); writer.CallControlFunction(ctrl.controlName, "SetDataSourceStringList(\"\")"); writer.Template.AddToCodelet("INITUSERCONTROLS", "FPetraUtilsObject.LoadComboBoxHistory(" + ctrl.controlName + ");" + Environment.NewLine); } return writer.FTemplate; }
/// <summary> /// assign event handler to control /// </summary> public void AssignEventHandlerToControl(TFormWriter writer, TControlDef ctrl, string AEvent, string AEventHandlerType, string ActionToPerform) { if ((AEvent == null) || (AEvent.Length == 0)) { return; } if (ActionToPerform.StartsWith("act")) { TActionHandler ActionHandler = writer.CodeStorage.FActionList[ActionToPerform]; if (ActionHandler.actionId.Length > 0) { // actionId is managed by FPetraUtilsObject // need a special function that wraps calls to FPetraUtilsObject, otherwise problems in designer ActionToPerform = ActionHandler.actionName; } else if (ActionHandler.actionClick.Length > 0) { if (ActionHandler.actionClick.StartsWith("FPetraUtilsObject")) { // need a special function that wraps calls to FPetraUtilsObject, otherwise problems in designer ActionToPerform = ActionHandler.actionName; } else { // direct call ActionToPerform = ActionHandler.actionClick; } } else { ActionToPerform = ""; } } else { // direct call: use ActionToPerform } if (ActionToPerform.Length > 0) { writer.SetEventHandlerToControl(ctrl.controlName, AEvent, AEventHandlerType, ActionToPerform); } }