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