m_cyril1
Messages postés59Date d'inscriptionmercredi 30 mars 2005StatutMembreDernière intervention 3 juin 2005
-
27 avril 2005 à 16:36
m_cyril1
Messages postés59Date d'inscriptionmercredi 30 mars 2005StatutMembreDernière intervention 3 juin 2005
-
10 mai 2005 à 11:08
Je souhaiterais savoir s' il est possible d'avoir plusieurs Units pour une même Form
Si oui comment il faut faire
(insertion, liens entre les units, appels des fonctions entre units, ...)
Ca m'arrangerais bien que ça soit oui, ça me permettrais d'alléger mon code
yvescollet
Messages postés55Date d'inscriptionmardi 26 août 2003StatutMembreDernière intervention22 janvier 2006 27 avril 2005 à 17:46
Hello,
Si le but de ta question est de pouvoir alléger ton code comme tu le dis, tu peux tout à fait utiliser plusieurs unités dans ton application. Une unité qui appartient à ta Form (où tu vas mettre les événements onclick... de tes composants ou gérer leur propriétés) et autant d'autres unités que tu veux à côté qui seront utilisées comme Objet métier, unité pour des calculs, unité pour un DataModule...
m_cyril1
Messages postés59Date d'inscriptionmercredi 30 mars 2005StatutMembreDernière intervention 3 juin 2005 28 avril 2005 à 08:48
C'est vrai qu'un exemple n'est pas de refus. Cela ne fait qu’un mois que je programme et j’ai encore un peu beaucoup de mal !
Je sais que lorsqu’on ajoute une nouvelle fiche (form) il y a un Unit qui s’ajoute aussi, idem avec les bases de données. Mais pour une seule (et unique) Form avoir plusieurs Units je sais pas faire.
ni69
Messages postés1418Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 5 juillet 201012 28 avril 2005 à 11:40
Une fiche ne peut pas avoir plusieurs unités. Cependant tu as la possibilité de rajouter des unités au projet sans pour autant rajouter de fiche en faisant ( Ficher | Nouveau | Unité ) et tu peux lier les unités entre elles en faisant ( Fichier | Utiliser l'unité... ).
Imaginons que dans l'événement OnClick d'un bouton sur la form1 (l'unit1 étant gestionnaire de l'événement), on veuille lancer la procedure MaProc de l'unit2. Tout d'abord, on lie l'unit2 à l'unit1 (voir ce-dessus). Le code sera le suivant :
code de l'unit1 : = =================
uses Unit2;
procedure TForm1.Button1Click(Sender: TObject);
begin MaProc;
end;
== ===========================
code de l'unit2 : ==================
unit Unit2;
interface
uses Dialogs; // Nécessaire pour le showmessage
procedure MaProc;
implementation
procedure MaProc;
begin ShowMessage('Vous avez appuyé sur le bouton');
end;
end.
=============================
@+
Bonne Prog'
Nico
<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
pseudoOM
Messages postés173Date d'inscriptionjeudi 3 février 2005StatutMembreDernière intervention30 janvier 20091 28 avril 2005 à 15:02
Je crois que pour avoir accès à la procédure tu devrais déclarer unit2 dans implémentation (uses unit2;) mais ensuite tu devrais faire unit2.MaProc; pour faire appel à la procédure qui se trouve dans unit2.
pseudoOM
Vous n’avez pas trouvé la réponse que vous recherchez ?
ni69
Messages postés1418Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 5 juillet 201012 28 avril 2005 à 15:17
Pour la déclaration, c'est bien ce que je disais(j'ai bien mis uses unit2; dans le code de l'unit1
). Cependant, désolé de n'avoir pas précisé que c'est dans le bloc implementation qu'il fallait le mettre. J'étais parti du principe que m_cyril1 se servirait de [ Fichier | Utiliser l'unité... ], ce qui place automatiquement la déclaration dans ce bloc...
ensuite tu devrais faire
unit2.MaProc;
pour faire appel à la procédure qui se trouve dans unit2
>>
dans ce que je propose , ce n'est pas nécessaire... On peut tout simplement faire MaProc;
pour appeler la procédure
@+
Bonne Prog'
Nico
<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
arbeitsstation
Messages postés13Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention29 avril 2005 29 avril 2005 à 15:55
Pour alléger le code d'une appliquation, il y a posibilité de lier plusieurs unités entre elles. Mais cela a déjà été expliqué.
Une autre solution consiste a créé un fichier .asm ou .txt ou se que vous voulez avec des procedure ou des fonctions. Et de les inclures dans le code source par la directive de compilation {INCLUDE monfichier.txt} si celui-ci comprend des espaces il doit être déclarer entre : "X" et enfin pour un fichier pascal il n'est pas nécéssaire de noter son extention car ceci est la valeur par défaut.
m_cyril1
Messages postés59Date d'inscriptionmercredi 30 mars 2005StatutMembreDernière intervention 3 juin 2005 9 mai 2005 à 16:52
Je me suis mal exprimé Un exemple un peut plus compliqué ou par exemple il faut faire la somme des chiffres mémorisés dans un tableau dynamique. La mémorisation sur l'Unit1 et le calcul sur l'Unit2, et bien sur le résultat renvoyé dans un TEdit de la Form1.
(donc sur la form 2 TButton et 2 TEdit)
m_cyril1
Messages postés59Date d'inscriptionmercredi 30 mars 2005StatutMembreDernière intervention 3 juin 2005 10 mai 2005 à 11:08
Hoops j'ai mélangé mes messages la!!
Le message c'était:
"Je me suis mal exprimé Un exemple un peut plus compliqué ou par exemple il faut faire la somme des chiffres mémorisés dans un tableau dynamique. La mémorisation ce fait avec l'Unit1 et le calcul avec l'Unit2, et bien sur le résultat renvoyé dans un TEdit de la Form1 lorsqu'on appui sur le bouton calculer."