begin process at 2012 02 09 14:01:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

J'AI BESOIN D'AIDE !!!! :O

 > 

Variable Static ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Variable Static ?

jeudi 14 avril 2005 à 14:11:48 | Variable Static ?

tatofr

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
jeudi 14 avril 2005 à 16:42:01 | Re : Variable Static ?

WhiteHippo

Membre Club
Non pas de variables statiques.
Mais y'a toujours moyen de les remplacer !!

Cordialement.
jeudi 14 avril 2005 à 17:18:22 | Re : Variable Static ?

tatofr

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
jeudi 14 avril 2005 à 18:38:43 | Re : Variable Static ?

Delphiprog

Administrateur CodeS-SourceS
Les constantes typées déclarées localement sont utilisables commes des variables statiques avec Delphi. Tout espoir n'est donc pas perdu


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
vendredi 15 avril 2005 à 16:10:05 | Re : Variable Static ?

japee

Membre Club Administrateur CodeS-SourceS
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'
samedi 16 avril 2005 à 08:11:17 | Re : Variable Static ?

Delphiprog

Administrateur CodeS-SourceS
Voici un excellente illustration du concept.
Merci Japee


Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
samedi 16 avril 2005 à 14:01:28 | Re : Variable Static ?

WhiteHippo

Membre Club
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.
samedi 16 avril 2005 à 14:28:23 | Re : Variable Static ?

tatofr

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
samedi 16 avril 2005 à 16:32:19 | Re : Variable Static ?

japee

Membre Club Administrateur CodeS-SourceS
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...


Cette discussion est classée dans : fonction, variable, static, procedure, existen


Répondre à ce message

Sujets en rapport avec ce message

Comment attribuer une variable à un nom de procedure [ par Calou ] Slt à tous et toutesJ'aimerai savoir si quekqu'un à une idée pour attribuer une variable à un nom de procedure sub ou function sans faire de if text1 Utilisaiton de variable avec la fonction Ord [ par aLTsn3ak3r ] Salut!J'ai une variable et j'ai essayé d'utiliser ma variable dans Ordet jai utiliser la fonction copy pour qu'il insert dnas la variable jsute la pre Variable Static [ par nuns ] Bonjours, Tout le monde :)j'aimerais juste savoir comment je pour cree une variable Satic en delphi en Language C je mais juste le mot Static avant le String pour appeler variable simple [ par lebdenat ] <TD id=HB_Focus_Element vAlign=top width="100%" background="" height=250 UNSELECTAB Variable required [ par Mxbug ] Yop j'ai une procedure : procedure Monitor ; Begin If (Handle ActiveHandle) Then If (Window ActiveCaption) Then Begin Window := Act procedure stockee, variable [ par exyacc ] salut, j'aimerai faire une procedure stockée qui copie une tables d'une base origine dans une autre base, qd je passe le nom en variable, ca marche pô coment appeler une fonction dans un quickreport [ par zerdouda ] salut;dans mon quickrep , je voulez appelez une procedure qui converti une expression 'Sum(table1.valeur)' en caracteres alphabétiques dans une bande la boucle for [ par daysara21 ] salut j'ai un probleme dans mon application: j'ai une erreur dans cette procedure La variable de contrôle de boucle FOR doit être une variable local changer d'une variable [ par bsamine ] slt, g besoin d'aide :comment modifier la valeur d'une variable "var" de ([b]procedure[/b] TForm1.Button1Click) a partir d'une autre procédure par exe


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,318 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales