Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1799 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Decouper mon programme en plusieur unites.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Decouper mon programme en plusieur unites.

n°427633
KrzAramis
Help Me
Posté le 14-06-2003 à 18:09:21  profilanswer
 

Salut les gens,
 
Voila je suis en train de faire un soft, j en suis qu au debut et il fait deja 774 lignes. J ai recement fait trois soft de chaqu un 2000 lignes et plus et c etait la mouise a maintenir.
 
J aimerai donc decouper mon programme en plusieur unites. J ai deja essayer mais je crois que je manque de methode car je suis devenu dingue mon soft marchait plus comme il faut.
 
Un exemple me ferait bien plaisir. J aimerai aussi comment proteger les procedures et variables
 
Merci d avance
 
@->--


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
mood
Publicité
Posté le 14-06-2003 à 18:09:21  profilanswer
 

n°427635
antp
Super Administrateur
Champion des excuses bidons
Posté le 14-06-2003 à 18:20:01  profilanswer
 

En mettant un objet par unit tu réduis déjà pas mal à condition de faire de la programmation objet propre :D
Et pour faire ça proprement, il faut mettre le moins de code possible dans les unit des forms.
On ne devrait mettre là à peu près que ce qui concerne le visuel de la form elle-même.


Message édité par antp le 14-06-2003 à 18:20:08

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°427636
KrzAramis
Help Me
Posté le 14-06-2003 à 18:27:28  profilanswer
 

Je pens equ il ne faut pas separer les codes tel que FormOncreate , destroy etc de l unite principale ?
comment ca se passe pour les declaration de procedure ?
 
 
@->--


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°427640
antp
Super Administrateur
Champion des excuses bidons
Posté le 14-06-2003 à 18:51:34  profilanswer
 

:??: bah pourquoi les séparer ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°427641
KrzAramis
Help Me
Posté le 14-06-2003 à 18:59:56  profilanswer
 

antp a écrit :

Et pour faire ça proprement, il faut mettre le moins de code possible dans les unit des forms.
On ne devrait mettre là à peu près que ce qui concerne le visuel de la form elle-même.


 
D ou mon post ne pas separer les evenement OnCreate, OnDestroy et etc de l unite principale ! c est pas ce que t a voulu dire ?
 
 
@->--


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°427642
antp
Super Administrateur
Champion des excuses bidons
Posté le 14-06-2003 à 19:01:12  profilanswer
 

bah dans le OnCreate/OnDestroy tu mets la gestion de la fenêtre, et à la création destructions des objets appartenant à la fenêtre, ou l'appel à des méthodes d'objets qui existaient déjà avant la fenêtre...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°427649
KrzAramis
Help Me
Posté le 14-06-2003 à 19:18:41  profilanswer
 

Ok.
 
Comment ca se passe pour les declarationw ? toutes les procedures sont declarer dans l unigte principale "so to speak" ?
 
@->--


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°427665
antp
Super Administrateur
Champion des excuses bidons
Posté le 14-06-2003 à 20:06:38  profilanswer
 

:??: je vois pas trop le rapport
 
T'as des objets, la fenêtre peut connaître et créer les objets, mais le max de traitement (tout ce qui ne concerne pas directement l'interface utilisateur) doit se faire dans les objets (qui sont dans des autres units) plutôt que directement dans les OnClick etc.
C'est assez abstrait, et pas évident à expliquer :/


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°427695
zion
Plop
Posté le 14-06-2003 à 21:14:05  profilanswer
 

antp a écrit :

C'est assez abstrait, et pas évident à expliquer :/


 
Bah non y a rien de plus concret, une définition de classe max par unit, que ce qui touche à l'objet dans l'objet et pas des trucs bidons à la con comment un vilain programmeur pas organisé (donc une bonne analyse), et donc évidemment uniquement ce qui touche au visuel dans l'unité d'une form, aucun traitement lourd vu que tout ca doit se trouver dans de jolies classes ailleurs :D  
 
Et oui, c'est plus chiant que clic-clic, mais c'est propre :o


---------------
Informaticien.be - Lancez des défis à vos amis
n°432014
dweis
Posté le 18-06-2003 à 16:14:27  profilanswer
 

antp a écrit :

:??: bah pourquoi les séparer ?
 


 
+1 ça sert à rien !!

mood
Publicité
Posté le 18-06-2003 à 16:14:27  profilanswer
 

n°432032
KrzAramis
Help Me
Posté le 18-06-2003 à 16:23:38  profilanswer
 

Hum,  
J y vois pas trop clair dans vos explications. Mais bon a vous entendre ca va pas etre possible de reunir les evenements d un Tedit tous dans la meme unite ? right ?
En attendant j ai ecrit une unite qui s occupe d un traitement long et qui apparaissait plusieur dans mon prog. C est cool [:tozwarrior]  j ai au moins economiser 100 lignes (commentaires inclus). La question que je pose est la suivante est ceque ca en vaut la peine de creer un nouvelle classe a chaque fois (disons a chaque unite que je vais ecrire). Car quand je ne fais pas de type je n ai pas le droit aux closes telle que public & private. Bon en ce moment toutes mes procedures sont en public donc ca change pas grand chose.
 
Merci  [:ddr555]  
 
@->--


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°432069
antp
Super Administrateur
Champion des excuses bidons
Posté le 18-06-2003 à 16:40:43  profilanswer
 

Si tu mets la déclaration de procédure dans la partie "interface", elle est connue de tous ceux qui incluent la unit.
Sinon elle ne l'est pas.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°432104
KrzAramis
Help Me
Posté le 18-06-2003 à 16:58:06  profilanswer
 

Alors si je fais comme ceci ca pourrai fonctionner:
 

Code :
  1. unit MesButtons;
  2. interface
  3.   procedure Button1Click(Sender: TObject);
  4. implementation
  5. uses Ufrm_Main, dialogs;
  6. procedure {TForm1.}Button1Click(Sender: TObject);
  7. begin
  8.   Showmessage('Hello');
  9. end;
  10. end.


 
J ai pas delphi sous la main
 
@->--


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°432123
antp
Super Administrateur
Champion des excuses bidons
Posté le 18-06-2003 à 17:05:39  profilanswer
 

non, parce que les événements des objets doivent être des méthodes (procédures de classes)
 
mais je vois pas pourquoi tu veux mettre les events dans une autre unit, c'est pas très logique...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°432153
KrzAramis
Help Me
Posté le 18-06-2003 à 17:18:54  profilanswer
 

antp a écrit :

non, parce que les événements des objets doivent être des méthodes (procédures de classes)
 
mais je vois pas pourquoi tu veux mettre les events dans une autre unit, c'est pas très logique...  


C est juste pour savoir c est tout pour l instant. Les gros traitement pas grphic je fais une (ou plusieurs) unite(s) a part. Imagine le cas ou tous les compo visuels de la form ont tous leur evenements programmer ! merci l ambiance.
je sais que pour ce soft ca sera pas le cas. Mais bon je veux bien reunir tous les evenements ensemble mais bon dans une unit a part ca peut etre sympa.
 
@->--


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°432182
antp
Super Administrateur
Champion des excuses bidons
Posté le 18-06-2003 à 17:35:38  profilanswer
 

bah à priori tu mets tous les events dans la unit de la form, puis de là tu appeles d'autres objets
mais vouloir mettre dans une autre unit les événements d'un objet c'est un peu bizarre :heink:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°432199
KrzAramis
Help Me
Posté le 18-06-2003 à 17:44:15  profilanswer
 

Si je comprends bien toi tu fais

Code :
  1. unit UfrMain;
  2.  
  3.   interface
  4.     public
  5.       list procedure public
  6.     private
  7.       list procedure private
  8.  
  9.   implementation
  10.   uses list of custom units;
  11.  
  12.   procedure TForm1.ObjectXY(Sender: TObject);
  13.   begin
  14.     call to processing in another unit;
  15.   end;
  16. etc...
  17.   end.


 
? j ai bon ?
 
@->--


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°432208
zion
Plop
Posté le 18-06-2003 à 17:55:36  profilanswer
 

krzAramis a écrit :


? j ai bon ?


 
oué mais faut pas oublier que ton form n'est qu'une interface pour ton application, si tu fais de la programmation OO propre tu auras une jolie architecture d'objets qui n'ont rien de visuels pour traiter tout ce que peut faire l'application (y compris les options, etc, etc) mais si tu le comprends comme étant un objet cée dans ton form pour y foutre les fonctions ailleurs ca n'a aucun sens tu sais...
 
Si tu te penchais sur méthode?  ;)


---------------
Informaticien.be - Lancez des défis à vos amis
n°432270
KrzAramis
Help Me
Posté le 18-06-2003 à 18:57:13  profilanswer
 

Ok je veux bien programmer proprement mais qu entends tu precisemtn par prog OO puisqu a apparament c est pas bon ce que je fais.
Un petit exemple ne me fera pas de mal je pense.
 
Merci en tout cas
 
@->--


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°432372
antp
Super Administrateur
Champion des excuses bidons
Posté le 18-06-2003 à 20:40:13  profilanswer
 

krzAramis a écrit :


  interface
    public
      list procedure public
    private
      list procedure private
   
 


 
heu il manque la déclaration de tform1 là
 
ou alors tu as pas compris ce que je voulais dire par procédures publiques ou non : public = déclarées dans interface, private = pas déclarées dans interface


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°432781
KrzAramis
Help Me
Posté le 19-06-2003 à 11:37:04  profilanswer
 

antp a écrit :


 
heu il manque la déclaration de tform1 là
 
ou alors tu as pas compris ce que je voulais dire par procédures publiques ou non : public = déclarées dans interface, private = pas déclarées dans interface


 
J ai pas delphi sous la main c est pour ca.
En tout cas si vous avez un exemple c est mieux ;)
 
@->--


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°432812
antp
Super Administrateur
Champion des excuses bidons
Posté le 19-06-2003 à 12:08:29  profilanswer
 


unit bidule;
 
uses
  CeQuIlFaut;
 
interface
 
procedure TrucVisible;
 
implementation
 
procedure TrucInvisible;
begin
  ShowMessage('je suis une procédure visible que pour les autres procédures de cette unit');
end;
 
procedure TrucVisible;
begin
  ShowMessage('je suis une procédure visible pour tout ceux qui incluent cette unit');
end;
 
end.


 
mais ceci n'a rien à voir avec les événements des Forms...


Message édité par antp le 19-06-2003 à 12:08:44

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Decouper mon programme en plusieur unites.

 

Sujets relatifs
n'autoriser qu'une seule exécution simultanée d'un programmeEst-il possible d'héberger plusieur site chez un FAI
programme de compilationProgramme --> Clique automatique
Le premier qui me fait se programme !!!!!Comment récupérer les numéros de tel entrants dans un programme C++ ?
Comment exécuter un programme à partir du VBA dans excelProgramme d'archivage de fichiers
[Projet] Programme d'encodage/decodage Audio/Video MPEG-1/2/4Garder en mémoire les options d'un programme
Plus de sujets relatifs à : Decouper mon programme en plusieur unites.


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)