Procedimiento Delphi 7 con parámetros variantes

Tener un procedimiento que se parece a

Procedure TestProc(TVar1, TVar2 : variant);
Begin
  TVar1 := CreateOleObject('Excel.Application');
  TVar1.Workbooks.open('C:\Test\Test.xls');
  TVar1.Workbooks[1].Worksheets[1].Name := 'Sheet_1';
  TVar2 := TVar1.Workbooks[1].Worksheets['Sheet_1'];
End;

Nota: TVar1 y TVar2 son variables globales

Llamar al procedimiento en un evento onclick de un botón y luego usar los objetos creados no funciona

¿Es que Delphi no permite la creación de procedimientos con parámetros variantes?

preguntado el 02 de julio de 12 a las 15:07

Tenga en cuenta que T El prefijo se utiliza para indicar un tipo en lugar de una variable. Sus variables deben ser nombradas Var1 y Var2. Dicho esto, los llamaría ExcelApp y Worksheet porque eso le da más posibilidades de comprender de un vistazo lo que significa su código. -

1 Respuestas

En el ejemplo de código que presenta, TVar1 y TVar2 se encuentran las no variables globales, son parámetros locales. No están marcados como var params, por lo que recibirán una copia de los valores de los parámetros que se pasan a la llamada de función, y los cambios realizados en estas variables locales no se devolverán a la persona que llama. No importa si también hay variables globales nombradas TVar1 y TVar2 declarado en otro lugar, en este procedimiento tendrán prioridad los parámetros locales.

Si desea devolver las modificaciones a la persona que llama, declare los parámetros como var parámetros.

Procedure TestProc(var TVar1, TVar2 : variant);

Respondido 02 Jul 12, 20:07

El paso de variables por referencia es en realidad lo que necesitaba hacer, gracias a todos por su aporte. KE50

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.