Ho un problema su come inde genera il codice su un costrutto assolutamente legale, volevo capire se qualcuno ha esperienze a proposito.
ho questo codice:
dove Res è un idarray pubblico istanziato a new di un componente. Alla compilazione ottengo il seguente errore:
App_Code\Calendario.cs(749,61): error CS0103: Il nome 'RES' non esiste nel contesto corrente.
sulla seguente riga in rosso:
MainFrm.DTTObj.AddForI ("D9B7101E-F684-411B-9598-79DDDB816F78", "FOR (i := C0; i < Res Calendario Comp.Length (); i := i + 1)", "");
IDVariant I = new IDVariant(0,IDVariant.INTEGER);
for (I = Setcalendar_FI2_f1(I); Setcalendar_FI2_f2(I, RES); I = Setcalendar_FI2_f3(I))
{
l'errore è palese ed infatti se cambio il codice in:
usando la variabile di supporto j il codice generato è corretto e non ci sono messaggi di errore:
IDVariant J = null;
MainFrm.DTTObj.AddAssign ("E3EA7D02-E17D-448A-87DB-9281D5A0A035", "j := Res Calendario Comp.Length ()", "carico colonne da array risorse del comp", J);
J = new IDVariant(MainFrm.RES.Size());
MainFrm.DTTObj.AddAssignNewValue ("E3EA7D02-E17D-448A-87DB-9281D5A0A035", "E2FD0F00-2E72-4011-81C3-95A8567B7A21", J);
int DTT_C2 = 0;
MainFrm.DTTObj.AddForI ("D9B7101E-F684-411B-9598-79DDDB816F78", "FOR (i := C0; i < j; i := i + 1)", "");
IDVariant I = new IDVariant(0,IDVariant.INTEGER);
for (I = Setcalendar_FI2_f1(I); Setcalendar_FI2_f2(I, J); I = Setcalendar_FI2_f3(I))
{
è vero che la situazione si risolve facilmente ma costringe a prove e modifiche noiose su cose piuttosto semplici.... inoltre costringe ad acrobazie di scrittura codice inutili