Bonjour tout le monde,
Je viens de me mettre à Delphi 6. J'étais très habitué à Visual basic, et j'avoue que le passage de l'un à l'autre me pose des problèmes.
Je ne comprends pas la gestion de l'allocation de mémoire pour les différents types de variable ! Je vais essayer d'être un peu plus clair.
Dans une procédure, j'ai cru comprendre que si je déclare une variable, un place mémoire lui est affectée, et ainsi, je peux l'utiliser dans toute la procédure à ma guise ... Seulement je me rends compte qu'à certains moments, la valeur affectée à la variable est modifiée, comment ? j'en sais rien !
J'ai pas mal d'expérience sous VB et la gestion des variables locales et globales ne me posaient pas de problèmes !
Par exemple, voilà un exemple qui me laisse dubitatif !
ex.
procedure Form1.Test()
var VARI : Integer;
var tempStr : String;
begin
For VARI :=0 To 7 do
begin
tempSTr := iwrite(1,'Coco');
ShowMessage (IntToStr(VarI) + ' : ' + tempStr);
end;
end;
Remaque
iwrite est une fonction "correctement définie" (test à l'appui) faisant appel à un fichier dll pour communiquer avec un appareil de mesure.
Le problème que je rencontre dans ce cas est le suivant :
le programme compilé, ne sort jamais de la boucle FOR car VarI ne passe pas de 0 à 7, mais prend des valeurs absurdes ... (105, 1328, ..)
Je n'utilise même pas ce nom de variable dans la fonction iwrite ...
Ce n'est pas le seul cas que je ne comprends pas, d'une façon générale, j'ai l'impression que dès que j'appelle une fonction, les variables locales et globales changent ...
Si quelqu'un a compris ce que je demande, peut-il m'aider:
Merci ...
![]()
Rfab
Partager