Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   constantes temporales (https://www.clubdelphi.com/foros/showthread.php?t=39299)

Crandel 16-01-2007 17:40:58

constantes temporales
 
Hola amigos, tengo definido varios valores constantes, principalmente de consultas SQL que se ejecutan cuando se inicia la aplicacion.

Voy verificandi algunas cosas y de acuerdo a ello ejecuto otras.

El tema es que esas consultas no se utilizan mas durante la vida del programa. Por lo que me imagino siguien viviendo hasta que termine mi aplicacion.

Como hago para liberar su memoria una vez terminado la fase inicial, deberia definirlas dentro de un objeto para asi liberarlas?

BuenaOnda 16-01-2007 17:54:21

Hola... hasta donde yo sé, las constantes no cambian su valor durante toda tu aplicación.. lo que puedes hacer es utilizar variables publicas..

por ejemplo si utilizas funciones, procedimientos o variables públias, podrias declararlas en un TDataModule y luego incluir la unit de este DataModule, en todos los Forms que desees utilizar los procedimientos, funciones o variables,pertenecientes al DataModule.

espero que te sirva...:)

dec 16-01-2007 18:10:30

Hola,

A riesgo de meter la pata y ciñéndome a lo que entiendo se requiere... ¿qué tal parece lo siguiente?

Código Delphi [-]
var
  DON_JOSE: string = '- Hola don José';
  DON_PEPITO: string = '- Hola don Pepito';

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(DON_PEPITO +' '+ DON_JOSE);

  Pointer(DON_JOSE) := nil;
  Pointer(DON_PEPITO) := nil;

  ShowMessage(DON_PEPITO +' '+ DON_JOSE);
end;

Crandel 16-01-2007 18:11:40

mi idea no es cambiarle el valor, es solo destruirlas.

Crandel 16-01-2007 18:21:48

Gracias Dec, algo asi estaba pensando.

Aunque ahora que lo pienso :rolleyes: , si las defino como variables, como hiciste se puede hacer directamente
Código Delphi [-]
DON_JOSE := '';

no es nada muy importante, solo ver si podia liberar un poco de la memoria que no necesito

dec 16-01-2007 19:44:37

Hola,

Pues lamento no llegar yo tan abajo, pero, acaso con esto último que dices también estarías logrando lo que buscas. :)

delphi.com.ar 16-01-2007 20:48:54

Si observas que es lo que hace el compilador con tus constantes, verás que no tendrás que preocuparte por la memoria, mas que por lo que ocupa en el propio ejecutable al cargarlo.

ContraVeneno 16-01-2007 20:55:51

"Hola don pepito.... hola don jose....." mmmmmm.... eso me recuerda a algo de mi infancia, creo que una canción... pero no estoy seguro...:rolleyes:

Crandel 16-01-2007 23:17:57

Cita:

Empezado por delphi.com.ar
Si observas que es lo que hace el compilador con tus constantes, verás que no tendrás que preocuparte por la memoria, mas que por lo que ocupa en el propio ejecutable al cargarlo.

te refieres a que las constantes no son cargadas en memoria si no estan siendo ocupadas?

de que forma recomiendas observarlo?

Ya habia observado en el "Watch List" que no es posible ver el valor de las constantes si no estas en un metodo que las use, pero sucede lo mismo con las variables

roman 16-01-2007 23:24:41

Una constante no ocupa espacio en memoria; simplemente porque ni siquiera existe una vez compilado el ejecutable. Es decir, si tienes:

Código Delphi [-]
const
  PI = 3.15;

......

Area := PI*Radio*Radio;

el compilador sustituirá cada ocurrencia de la constante por su valor en el exe final, de forma que es como si hubieses escrito directamente:

Código Delphi [-]
Area := 3.15*Radio*Radio;

// Saludos

Crandel 16-01-2007 23:46:48

gracias a todos, entonces asunto solucionado :D y sin escribir una sola linea de código.

dec 17-01-2007 00:53:02

Hola,

- Hola don Pepito
- Hola don José...

PD. Léase cantando, claro.


La franja horaria es GMT +2. Ahora son las 08:44:26.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi