[Lazarus-es] Error en paso de parametros

Antonio Évora aevorar en gmail.com
Dom Oct 21 19:29:19 CEST 2012


El 21/10/12 15:29, José Mejuto escribió:
> El 21/10/2012 1:00, Antonio Évora escribió:
>> Estimados listeros,
>> Trabajo con la revisión de SVN 35723 de Lazarus y fpc 2.4.4. y estoy
>> teniendo un problema con el paso de parámetros a una función. Llamo dos
>> veces a la función (exactamente la misma llamada) y la primera se pasa
>> todo correctamente pero la segunda vez el primer parámetro no es pasado
>> (pasa como cadena vacía). Añado el código por si le queréis dar un
>> vistazo, en un proyecto nuevo ponéis un botón y listo..
>>
>> function GetSubString(aStr, aSeparator: string;
>>    EqualsIfNotSeparator, TrimParts: boolean; MinLenghtPartLeft,
>>    MinLenghtPartRight: integer; out aPartLeft, aPartRight: string):
>> boolean;
>
>>    if not GetSubString(aStr,'|',false,true,2,5,aWhereField,aStr) then
>
> Hola,
>
> Pasas aStr 2 veces, al principio y al final. En GetSubString el primer 
> parámetro no tiene modificador, pero los dos ultimos son tipo out, lo 
> que quiere decir que la variable que se pase ahí será inicializada a 
> "" justo antes de entrar en la función.
>
> Usa var en vez de out, o mejor variables diferentes. Pasar la misma 
> variable en dos parámetros cuando uno va a ser modificado suele ser un 
> desastre por norma general.
>
>
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
Gracias José, simplemente cambiando "out" por "var" ya va perfectamente. 
Lo que me tenia "rayado" es que la primera llamada la hace 
perfectamente, errando en la segunda.

Gracias de nuevo.
Saludos.




More information about the Lazarus-es mailing list