1 variable pour 2 unit [Résolu]

Messages postés
26
Date d'inscription
vendredi 7 avril 2006
Dernière intervention
1 juin 2008
- - Dernière réponse : f0xi
Messages postés
4304
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
9 mars 2018
- 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 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
26
Date d'inscription
vendredi 7 avril 2006
Dernière intervention
1 juin 2008
3
Merci
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.

Merci emkka 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de emkka
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
3
Merci
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

Merci Cirec 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de Cirec
0
Merci
Salut

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

Merci
Commenter la réponse de Utilisateur anonyme
0
Merci
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
0
Merci
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
Messages postés
26
Date d'inscription
vendredi 7 avril 2006
Dernière intervention
1 juin 2008
0
Merci
ben essaye crée un edit et dans le programme met " edit1.text:=(inttostr(a)); " c'est tout!
Commenter la réponse de emkka
0
Merci
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
Messages postés
4304
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
9 mars 2018
0
Merci
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.