[Delphi] Comprendre qui instancie qui

Comprendre qui instancie qui [Delphi] - Programmation

Marsh Posté le 07-06-2002 à 13:39:07    

Salut,
 
J'ai crée un programme en delphi avec plusieurs fenêtre et classes sans avoir compris comment j'ai réussi a le faire...
 
Je dois faire un schéma sur la hiérarchisation des classes.
 
Donc pouvez vous m'expliquer comment on trouve ?
 
Faut que je comprenne ce que ca veut dire:
- les classes en var
- uses dans l'interface
- uses dans l'implementation
 
Comprends rien au delphi...c pas logique a côté du Java...
 
 :hello:

Reply

Marsh Posté le 07-06-2002 à 13:39:07   

Reply

Marsh Posté le 07-06-2002 à 13:47:43    

les classes en var = ? (je pige pas)
uses dans interface = units qui doivent être connues pour les déclarations de classes/fonctions/méthodes/etc...
uses dans implementation = units qui doivent être connues juste pour l'implémentation des classes/fonctions/méthodes/etc... définies plus haut.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 07-06-2002 à 13:49:43    

tout est logique sous Delphi tu n'as pas la même logique c tout !!! faut pô oublié que c de l'informatique ya pô plus logique alors ...
bon sinon les uses dans l'interface c ceux qui sont au tout début de ton fichier ? si oui ce sont les fichiers que l'appli utilise sous forme de bibliothèque de types  
les autres uses sont là pour lier certain fichiers entre eux (style :  
tu as une procedure dans "fichier1.pas" déclarée en publique tout ça pas de pb ... et tu veux l'utiliser dans "fichier2.pas" et bien tu mettras en dessous de ton implémentation du fichier 2 un :
uses  
fichier1;  
 
bon pour ce qui est maintenant des classes en var et bien ça sert justement à savoir quoi instancie quoi parce qu'un des gros défauts de Delphi c justement qu'il crée toute sorte de truc un peu partout et, en loccurence, ces fameux "var blabla : TEditBox " (par exemple) donc premièrement ces var en question sont écrit à cet endroit si'ils sont "graphique" ce sont des variables qui sont faits sur la forme  
Et, de là tu vas pouvoir voir qui instancie qui : il y a des variables TForm ou qu iviennent d'un TForm et bien tu les vires toutes (attention garde une save de ton truc parce que sinon ça va être la merde et pis après tu vois où ça plante !!!
si t'as besoin d'autres chose n'hésites pô !! :D


---------------
Je vends ma batterie me contacter en MP pour plus de renseignements
Reply

Marsh Posté le 07-06-2002 à 13:50:28    

exemple pour le var :
 
Interface
 
private
public
  end;
 
var
  Fprincipal: TFprincipal; //fenetre principal
  FenPression: TFtabPression; //fenêtre tables de pressions
  FenSequence : TFRateSeqence; //fenêtre tables de séquences
 
Implementation

Reply

Marsh Posté le 07-06-2002 à 13:51:23    

C'est pas des classes ça ce sont des pointeurs vers des objets...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 07-06-2002 à 13:53:31    

ha ok merci pour ces eclaircissements
 
je me disais aussi que les var sont les 'instances' mais ce que je comprend pas c que j'ai une classe (un unité sans TForm) qui n'est mis en var nulle part, les autres le déclarent dans uses de la partie implementations

Reply

Marsh Posté le 07-06-2002 à 13:53:55    

ouhlala
 
tendez je relis bien ! lol

Reply

Marsh Posté le 07-06-2002 à 13:58:19    

:heink: ouais pcq là c'est pas clair
 
Bon y a les classes, qui sont les Tqqchose, déclarés comme Tqqchose = class(Tautrechose)
Ensuite il y a les variables pointeurs, déclarés comme variables du type Tqqchose. Ces variables peuvent accueillir un pointeur vers une instanciation de classe (c'est-à-dire un objet).


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 07-06-2002 à 14:00:32    

mais normalement quand tu crées une fenêtre tu dois la créee de façon locale en faisant un :
procedure blabla (sender : TObject);
var Form1 : TFotm (ou Tcquetuveux);
begin
  Form1 := TForm.create(self); ou nil c comme tu veux la différence n'est guère notable ...


---------------
Je vends ma batterie me contacter en MP pour plus de renseignements
Reply

Marsh Posté le 07-06-2002 à 14:04:06    

Form1 est la variable accueillant le pointeur vers l'objet créé sur le modèle de la classe TForm1
 
Self ou nil c'est pas pareil hein. Ça dit qui est le parent de la Form. Et vaut mieux mettre la Form principale ou Application comme parent plutôt que nil...
 
Et tu peux aussi faire:
 
with TForm1.Create(Self) do
begin
  try
    ShowModal();
  finally
    Free;
  end;
end;
 
la variable Form1 n'est pas obligatoire, elle ne sert qu'à contenir le pointeur vers l'objet crée, pour l'utiliser, chose que l'on peut faire autrement (comme ici avec un with)


Message édité par antp le 06-07-2002 à 14:05:11

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed