Handling Telerik controls
The Telerik components have caused some difficulty for the function ml_UpdateControls().
The code that they generate in the InitializeComponent() function does not necessarily generate a Form-Level variable for each control. For some controls, is simply uses a local variable within InitializeComponent() and then adds it to the Controls collection for the form.
For example
private void InitializeComponent() { ... System.Windows.Forms.Label customerIDLabel; ... customerIDLabel = new System.Windows.Forms.Label ( ); ... // // customerIDLabel // customerIDLabel.AutoSize = true; customerIDLabel.Location = new System.Drawing.Point ( 26, 330 ); customerIDLabel.Name = "customerIDLabel"; customerIDLabel.Size = new System.Drawing.Size ( 68, 13 ); customerIDLabel.TabIndex = 2; customerIDLabel.Text = "Customer ID:"; ... this.Controls.Add ( customerIDLabel ); ... }
In this case, it is impossible to refer to the control later as customerIDLabel
, because this is a local variable in InitializeComponent().
This effectivly breaks the code previously generated in the function ml_UpdateControls().
Starting with version 4.53.0022, the Add-In generates slightly different code, for example
private void ml_UpdateControls() { ... this.Controls["customerIDLabel"].Text = ml.ml_string ( 67, "Customer ID:" ) ; ... }
This code is only generated if there is no equivalent form level variable for the control. Otherwise the same code as before is generated.
I don't think that this will affect many people anyway, unless I have broken something, so let me know if anything is not working properly.
Phil