1 variable pour 2 unit [Résolu]

emkka 26 Messages postés vendredi 7 avril 2006Date d'inscription 1 juin 2008 Dernière intervention - 12 mai 2006 à 20:38 - Dernière réponse : f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention
- 13 mai 2006 à 02:40
bonjour,
je dispose de deux unit dans la premiere j'ai declaré une variable globale a:byte apres je lui affecte un nombre (ex: 5) maintenant je passe à la deuxieme unit et je cree un edit et je lui affect la variable "a" en utilisant biensur inttostr(a). Le probleme c'est que je trouve un '0' dans edit. Comment faire ?merci
Afficher la suite 

8 réponses

Répondre au sujet
emkka 26 Messages postés vendredi 7 avril 2006Date d'inscription 1 juin 2008 Dernière intervention - 12 mai 2006 à 22:27
+3
Utile
au fait j'ai trouver l'erreur, j'ai toucher au public et autre choses mais j'ai vu qu'il suffit juste d'ajouter uses unit1; dans implementation et c'est tout.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de emkka
Cirec 4217 Messages postés vendredi 23 juillet 2004Date d'inscription 3 avril 2018 Dernière intervention - 12 mai 2006 à 22:51
+3
Utile
Salut,

il faut déclarer ta variable dans la section Interface de l'unit1:

unit Unit1;


interface


uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;


type
TForm1 = class (TForm)
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;


var
Form1: TForm1;
Ma_Variable : Byte;


implementation


{$R *.dfm}

...
Begin
Ma_Variable : = 125;
End;
...


<HR>

<HR>

unit Unit2;


interface


uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;


type
TForm2 = class (TForm)
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;


var
Form2: TForm1;
implementation


{$R *.dfm}

Uses Unit1;

...
Begin
Edit1.Text : = IntToStr(Ma_Variable);
End;
...

Evite déjà des variables locales d'une lettre
donne un nom plus explicite à tes variables.

@ Francky
Byte est compris dans l'interval de Integer
il n'y a donc pas transtypege a faire


<HR>

n'oubliez pas de cliquer sur Réponse Acceptée
si elle vous convient


<HR>

@+
Cirec
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Cirec
Utilisateur anonyme - 12 mai 2006 à 22:22
0
Utile
Salut

Tu peux donner ton code stp pour que l'on puisse y voir clair ??

Merci
Commenter la réponse de Utilisateur anonyme
Utilisateur anonyme - 12 mai 2006 à 22:23
0
Utile
Pardon je n'avais pas vu

a est un byte et tu fais inttostr(a). Là il y a un soucis non?
Commenter la réponse de Utilisateur anonyme
Utilisateur anonyme - 12 mai 2006 à 22:33
0
Utile
Excuse moi mais tu peux m'explique comment tu fais pour faire inttostr(a) alors que a est une variables de type byte ???

C'est une erreur dans ta question ??
Commenter la réponse de Utilisateur anonyme
emkka 26 Messages postés vendredi 7 avril 2006Date d'inscription 1 juin 2008 Dernière intervention - 12 mai 2006 à 22:38
0
Utile
ben essaye crée un edit et dans le programme met " edit1.text:=(inttostr(a)); " c'est tout!
Commenter la réponse de emkka
Utilisateur anonyme - 12 mai 2006 à 22:39
0
Utile
Fais attention avec ce genre de chose : on doit faire du transpytage normalement. La ca va ca passe mais tu risques de rencontrer des soucis a faire cela
Commenter la réponse de Utilisateur anonyme
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 13 mai 2006 à 02:40
0
Utile
non francky ... pas besoin de transtyper les entiers ...

IntToStr accepte aussi bien un byte, qu'un smallint, qu'un word ect... et meme le cardinal et le int64 ...

donc aucun probleme ...

le probleme vient plutot des float qui selon leurs precision ont des decimales erronées aprés cette precision... et aussi il ne se gere pas pareils au niveau des registre CPU ... meme si on ne fait pas de l'assembleur le programme lui reste compilé en assembleur ... donc ...

au mieux, ce que je prefere par dessus tout ... la fonction Format qui accepte tout les types et est aussi performantes que les fonction inttostr, floattostr ect...

edit1.caption := format('%d',[A]);


avantage on peu meme ajouter des 0 devant la valeur

edit1.caption := format('%.4d',[A]); { renvois : '0000'...'0255' }
Commenter la réponse de f0xi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.