<p><br>
El 03/09/2013 20:03, "Ismael L. Donis Garcia" <<a href="mailto:ismael@citricos.co.cu">ismael@citricos.co.cu</a>> escribió:<br>
><br>
> No entiendo cuando me dices fuera del formulario.<br>
>  <br>
> Yo lo hago dentro del formulario en la parte superior debajo de donde dice implementación.<br>
>  <br>
> y lo llamo desde otr formulario como dije antes. Osea diciendo desde otro formulario:<br>
>  <br>
>  <br>
> var<br>
>   f: Tform1;<br>
> begin<br>
>   f:=Tform1.Create(Self);<br>
>   f.ShowModal;<br>
>   f.Free;<br>
> end;<br>
>  <br>
>  <br>
> Probe poniendo como me dice Maxi Private y me da el siguiente error:<br>
>  <br>
> uflbal.pas(114,2) Fatal: Syntax error, ":" expected but "identifier BVALIDA" found<br>
><br>
> Tengo declarado lo siguiente:<br>
>  <br>
>  <br>
> implementation<br>
>  <br>
> uses<br>
>   udm, ufconta, ufvisual;<br>
>  <br>
> type<br>
>  TBranch = record<br>
>    Sum: string;<br>
>     Debe: string;<br>
>     Haber: string;<br>
>     sascta: array of string;<br>
>     sacap: array of string;<br>
>     sascap: array of string;<br>
>     saele: array of string;<br>
>     saemp: array of string;<br>
>     pdscta: array of string;<br>
>     phscta: array of string;<br>
>     pdcap: array of string;<br>
>     phcap: array of string;<br>
>     pdscap: array of string;<br>
>     phscap: array of string;<br>
>     pdele: array of string;<br>
>     phele: array of string;<br>
>     pdemp: array of string;<br>
>     phemp: array of string;<br>
>  end;<br>
>  <br>
> var<br>
>  private<br>
>    bvalida, blist: boolean;<br>
>    sentidad, snota, strscta, strcap, strscap, strele, stremp: string;<br>
>    iano, CtaIndex, SCtaIndex, CapIndex, SCapIndex, EleIndex, EmpIndex: integer;<br>
>    lcampos: longint;<br>
>    ddebe, dhaber, ddif, dmdebe, dmhaber, dmdif: double;<br>
>    dini: TDate;<br>
>    Hdrs: array of TBranch;<br>
> end; <br>
>  <br>
> El private lo puse porque tratando de hacer lo que me dijo Maxi y no funcionó. Si quito el private si funciona, pero las variables de me van del hambito que deseo.<br>
>  <br>
> Deseo que solo se vean dentro del formulario.<br>
>  <br>
> O es que hay que declararlas dentro del private de los procedimientos?<br>
>  <br>
> osea aquí?<br>
>  <br>
>   private<br>
>     { private declarations }<br>
>  <br>
> Yo ahí declaro las funciones y los precedimientos privados. Por ejemplo tengo en este formulario:<br>
>  <br>
>   private<br>
>     { private declarations }<br>
>     procedure abortar();<br>
>     procedure actdat(icta: integer; sscta: string; scap: string; sscap: string; sele: string; semp: string; bhisto: boolean);<br>
>     procedure datosact();<br>
>     function valdbal(bhisto: boolean): boolean;<br>
> Disculpen mi desconocmiento de pascal, pero nunca antes lo había mirado.<br>
>  <br>
> Saludos Reiterados<br>
> ========<br>
> | ISMAEL |<br>
> ========<br>
> Only for the small landowners and Cubans companies<br>
> Website: <a href="http://www.sisconge.byethost15.com">www.sisconge.byethost15.com</a><br>
>               <a href="http://www.sisconge.hol.es">www.sisconge.hol.es</a><br>
>><br>
>> ----- Original Message -----<br>
>> From: Martin Gomez<br>
>> To: Spanish version of Lazarus List<br>
>> Sent: Tuesday, September 03, 2013 4:40 PM<br>
>> Subject: Re: [Lazarus-es]Duda sobre declaración y el alance de variables en los formularios<br>
>><br>
>> Claro, si las declaras fuera de la clase del formulario las variables quedan como "globales" (solo para los que tengan la unit del formulario en su uses).<br>
>> Si necesitas acceder a estos valores desde fuera, el consejo es que agregues propiedades en el formulario, o las pongas en la sección public, sino sigue el consejo de Maxi y mantenlas privadas.<br>
>> Otra alternativa sería pasarlas a 0 en el OnCreate.<br>
>><br>
>><br>
>> 2013/9/3 Maxi <<a href="mailto:maximiliano.duarte@gmail.com">maximiliano.duarte@gmail.com</a>><br>
>>><br>
>>> El día 3 de septiembre de 2013 16:47, Ismael L. Donis Garcia<br>
>>> <<a href="mailto:ismael@citricos.co.cu">ismael@citricos.co.cu</a>> escribió:<br>
>>> > Tengo una gran duda sobre la declaración de variables en formulario.<br>
>>> ><br>
>>> > Si declaro una variable de la siguiente forma:<br>
>>> ><br>
>>> > implementation<br>
>>> ><br>
>>> > var<br>
>>> >  ddebe, dhaber: double;<br>
>>> ><br>
>>> > y llamo el formulario de la siguiente forma:<br>
>>> ><br>
>>> >  f:=form1.Create(Self);<br>
>>> >  f.ShowModal;<br>
>>> >  f.Free;<br>
>>> ><br>
>>> > Y dentro del formulario le doy valores a las variables ddebe y dhaber y<br>
>>> > cierro el formulario con self.close;<br>
>>> ><br>
>>> > Cuando entro de nuevo al formulario se me conservan los valores de las<br>
>>> > variables ddebe y dhaber.<br>
>>> ><br>
>>> > Ahora mi duda:<br>
>>> ><br>
>>> > Si yo cierro el formulario porque se me mantiene el valor de las variables<br>
>>> > que yo había calculado en la entrada anterior?<br>
>>> > Este valor no debería ser =0 al volver a entrar de nuevo al formulario?<br>
>>> > Cual es la causa de este comportamiento?<br>
>>> ><br>
>>> > Desde ya Gracias<br>
>>> > ========<br>
>>> > | ISMAEL |<br>
>>> > ========<br>
>>> > Only for the small landowners and Cubans companies<br>
>>> > Website: <a href="http://www.sisconge.byethost15.com">www.sisconge.byethost15.com</a><br>
>>> >              <a href="http://www.sisconge.hol.es">www.sisconge.hol.es</a><br>
>>> ><br>
>>> ><br>
>>> > _______________________________________________<br>
>>> > Lazarus-es mailing list<br>
>>> > <a href="mailto:Lazarus-es@lists.lazarus.freepascal.org">Lazarus-es@lists.lazarus.freepascal.org</a><br>
>>> > <a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
>>><br>
>>><br>
>>> esta mal declarado y usado.<br>
>>><br>
>>> Deberias hacerlo asi:<br>
>>><br>
>>> TformX<br>
>>> .<br>
>>> .<br>
>>> .<br>
>>> .<br>
>>> Private<br>
>>>  ddebe, dhaber: double;<br>
>>> end;<br>
>>><br>
>>> Si lo declaras en la implementacion es como global al archivo.<br>
>>><br>
>>> Self es el objeto actual en el momento de llamarlo, y le estas<br>
>>> diciendo que Form1 se cree como pariente del objeto que trae Self. El<br>
>>> destructor del objeto llamador se encargaria de destruir a Form1.<br>
>>> yo lo uso de una forma mas segura<br>
>>><br>
>>>  with Tform1.Create(nil)<br>
>>>  try<br>
>>>    Showmodal;<br>
>>>  finally<br>
>>>   Free;<br>
>>> end;<br>
>>><br>
>>> o<br>
>>>  with Tform1.Create(nil)<br>
>>>  try<br>
>>>    Showmodal; // y en el evento oncanclose colocas:  Action := caFree;<br>
>>>  except<br>
>>>   Free;<br>
>>> end;<br>
>>><br>
>>><br>
>>> --<br>
>>> El que pregunta aprende, y el que contesta aprende a responder.<br>
>>><br>
>>> No a la obsolecencia programada:<br>
>>> <a href="http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml">http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml</a><br>
>>><br>
>>> Linux User #495070<br>
>>> <a href="http://domonetic.com/blog">http://domonetic.com/blog</a><br>
>>><br>
>>> _______________________________________________<br>
>>> Lazarus-es mailing list<br>
>>> <a href="mailto:Lazarus-es@lists.lazarus.freepascal.org">Lazarus-es@lists.lazarus.freepascal.org</a><br>
>>> <a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
>><br>
>><br>
>><br>
>><br>
>> -- <br>
>> Try not to become a man of success but rather to become a man of value. Albert Einstein<br>
>><br>
>> ________________________________<br>
>><br>
>> _______________________________________________<br>
>> Lazarus-es mailing list<br>
>> <a href="mailto:Lazarus-es@lists.lazarus.freepascal.org">Lazarus-es@lists.lazarus.freepascal.org</a><br>
>> <a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
><br>
><br>
> _______________________________________________<br>
> Lazarus-es mailing list<br>
> <a href="mailto:Lazarus-es@lists.lazarus.freepascal.org">Lazarus-es@lists.lazarus.freepascal.org</a><br>
> <a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
></p>
<p>Ismael tu clase tform tiene parte privada y pública, no hace falta poner var, el var es sólo para el interior del procedimiento.</p>
<p>Para accede de fuera sólo lo puedes hacer si esta en el public.<br>
Form1.mivariablepublica<br>
Todo lo que esta en private no hace falta self.variable com en visual basic. Sólo la variable es visible a todos loa métodos de la clase</p>