Variable Static ?

Signaler
Messages postés
29
Date d'inscription
vendredi 7 février 2003
Statut
Membre
Dernière intervention
6 juin 2005
-
Messages postés
1724
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2020
-
Bjr,
Je voudrasi savoir si en Deplhi existen les variables 'static' comment en C ou VB par exemple.

Une variable static est prive a une porcedure ou fonction, mais elle garde sa valeur une fois finalise la procedure ou fonction. Donc si je rappele la procedure je recupere la derniere valeur que je avias.
La difference avec une variable globale est ce que sa porte est seulement la procedure ou fonction ou elle est declare.

Est ce que existen en Delphi 6.0? je ne trouve pas...
Merci

Mauro

8 réponses

Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
2
Non pas de variables statiques.
Mais y'a toujours moyen de les remplacer !!

Cordialement.
Messages postés
29
Date d'inscription
vendredi 7 février 2003
Statut
Membre
Dernière intervention
6 juin 2005

Merci de ta reponse WhiteHippo. C'est bien dommage qui n'existe pas... ca m'aurait bien aide les variables statics, et surtout pour avoir un code plus propre.

Mauro
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Les constantes typées déclarées localement sont utilisables commes des variables statiques avec Delphi. Tout espoir n'est donc pas perdu


<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
URGENT : venez signer la pétition en ligne avant le 15 avril, svp

Messages postés
1724
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2020
6
Merci, Delphiprog !



Je n'avais jamais vraiment abordé ce concept, et tu m'as éclairé.

Ca m'a donné l'idée de ce bout de code amusant (je trouve...) :



function Ajoute(B: Integer): Integer;

const A: Integer = 0;

begin

Result := A + B;

A := Result;

end;



procedure TForm1.btnAddClick(Sender: TObject);

begin

lblResult.Caption := IntToStr(Ajoute(2));

end;



procedure TForm1.btnInitializeClick(Sender: TObject);

begin

lblResult.Caption := IntToStr(Ajoute(-Ajoute(0)));

end;



Bonne prog'
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Voici un excellente illustration du concept.
Merci Japee


<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
2
C'est certainement de ça que voulez parler tatofr lorsqu'il disait
"surtout pour avoir un code plus propre."

Bref, une excellente démonstration de japee, destiné à tous ceux pour qui la qualité de développement en Delphi n'est pas une exigence !!!

Cordialement.
Messages postés
29
Date d'inscription
vendredi 7 février 2003
Statut
Membre
Dernière intervention
6 juin 2005

Volia, c'est bien ça que je cherche ca fait deja quelque jours et
personne savais me donner une reponse. Merci japee pour ta demo, ca m'a
aide pas mal.

Maintenant je lance un autre debat au même sujet... car il y a
qqn qui m'a dit que il faut pas abusser de variables static (ou dans
notre cas de l'exemple de japee), et que c'est preferable utiliser les
variables local.



Moi sincerement g prefere utiliser les statics, je vois pas pourquoi
creer une global si on sait qu'on va l'utiliser ds une seule function
ou porcedure. En sachant que la porte de la global serait tout le code
et que g vais m'en servir en local sa me gene un peu.



Bon, j'espere que vs comprenez bien ma question, et j aimerais avoir une autre opinion.



Merci

Mauro
Messages postés
1724
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2020
6
C'est toute la question de la portée des variables.

Elle doit être adaptée à la logique du code.

Il est vaut toujours mieux utiliser une variable localement si l'on n'en a pas l'usage ailleurs.

Quand à la variable "static", son usage me paraît assez limité et
devrait rester exceptionnel, une simple variable locale éventuellement
passée en paramètre suffit dans la grande majorité des cas.

Il y a assez peu d'intérêt en général à garder à l'intérieur d'une
procedure ou d'une fonction la dernière valeur d'une variable. A moins
de vouloir s'en servir ailleurs... et on retombe sur la nécessité d'une
variable globale, ou d'une variable locale passée en paramètre dans
l'appel à notre routine.

C'est ça, le pascal : un langage structuré qui nous oblige à déterminer quels sont nos besoins.

Je le compare volontiers à une boîte de Lego thématique où toutes les
pièces seront utilisées : il n'y en a pas une de trop, et chacune va à
sa place.



Bonne prog'



japee



Et n'oublie pas
de cliquer sur la ou les réponses qui ont répondu à ta question, ça
signifie que le problème est résolu, d'autres pourront venir y trouver
la réponse à la même question.

Ca évite la redondance, quoi...