Accueil > Forum > > > > Création de composants - constructeur
Création de composants - constructeur
dimanche 30 mars 2008 à 11:45:40 |
Création de composants - constructeur
|
dimanche 30 mars 2008 à 11:52:43 |
Re : Création de composants - constructeur

PtitTrain
|
J'ai l'impression que mon message est tombé dans la trappe ... je recommence : Bonjour à tous, Persévérant dans l'apprentissage de la création de composants, je suis à la recherche d'une réponse claire à la question suivante : Quand y-at-ill obligation d'employer un Constructeur et quand n'est-ce pas indispensable ? Je n'ai pas lu de réponse très nette. (Je crois savoir que lorsqu'on dérive sa nouvelle Classe d'une Classe Delphi, il n'y a pas obligation ?..) Merci et bon dimanche (studieux sur Delphi ?...) JJT
|
|
dimanche 30 mars 2008 à 14:31:59 |
Re : Création de composants - constructeur

florenth
|
Salut !
Ben c'est simple:
- Si tu as besoin d'autre objets dans ta classe, (comme un TStringLst ou un tableau) alors tu vas devoir coder un constructeur pour les créer.
- Dans ce cas, ne pas oublier le "inherited" pour que le constructeur ancètre fasse aussi son boulot.
- Et ne pas oublier non plus que tout ce qui est crée par l'objet doit être détruit ! Donc la présence d'un constructeur se traduit quasi-obligatoirement par la présence d'un destructeur, qui fait le ménage.
Exemples:
TSuperInteger = class
protected
FInt: Integer;
public
procedure Inc;
procedure Dec;
property Value: Integer read FInt;
end;
Cette classe n'a pas besoin de constructeru car elle utilise que des types natifs (ie Integer). FInt est initialisé à 0 lorsque la classe est crée.
Si tu veu xpar contre l'initialiser à 100 ou à n'importe quelle autre valeur de ton choix, tu vas devoir coder ton propre constructeur, par exemple comme celui-ci :
TInitSuperInteger = class(TSuperInteger)
public
constructor Create(AInitValue: Integer);
end;
constructor TInitSuperInteger.Create(AInitValue: Integer);
begin
inherited Create;
FInt := AInitValue;
end;
A noter ici que tu n'as toujours pas besoin de destructeur, car tu n'as rien crée !
En espérant t'avoir dépatouillé l'esprit,
A+
Flo
|
|
dimanche 30 mars 2008 à 14:57:26 |
Re : Création de composants - constructeur

PtitTrain
|
Merci pour ta réponse. En somme, si je comprend bien, pas besoin de constructor si la nouvelle classe n'utilise que des "données membres" de type natifs déjà définis par Delphi (boolean, integer, string etc...) et à condition qu'on ne souhaite pas les initialiser autrement qu'à 0 (NIL, je crois). Dans tous les autres cas, il faut d'abord appeler le constructeur ancètre (avec Inherited) puis le constructeur à coder. JJT Dans le fond, est-ce nuisible d'appeler, dans tous les cas, le constructeur ancètre ?
Merci beaucoup pour le dimanche studieux (bien que plusiveux) Pour tout dire, je suis en train de commencer à réaliser mes premiers composants pour "construire" un T.C.O. (Tableau de Contrôle Optique) pour un réseau de chemin de fer...
|
|
dimanche 30 mars 2008 à 15:15:39 |
Re : Création de composants - constructeur

florenth
|
Réponse acceptée !
"Dans le fond, est-ce nuisible d'appeler, dans tous les cas, le constructeur ancètre ?" => Aucunement, puisque Delphi supprime de toutes façons le code inutile. En effet, tu nous avais déjà parlé de ton projet de chemin de fer. Cela risque d'être un très gros truc, n'hésites donc pas à créer plusieurs classes (une classe = une fonction) sinon ça va vite partir en gros bordel innomable ! A+ Et n'oublie pas de valider les réponses qui te conviennent ! Ressources Delphi, sources, tutoriaux, actu, ...: www.mx-dev.net [ Lien ]
|
|
dimanche 30 mars 2008 à 15:28:06 |
Re : Création de composants - constructeur

PtitTrain
|
Je déduis de ta réponse que je n'ai pas du dire trop d'incongruités (pour l'instant !..) Pour le TCO, comme je suis débutant Delphi, je me fixe pour l'instant des objectifs + que modestes ! (des composants cantons qui changeront de couleur si un train est présent et composants-aiguillages dont la bonne branche s'éclairera (avec un OnClick pour manoeuver l'aiguille.)). Après, si je progresse bien, on verra.. Merci pour ton aide, si précieuse quand on commence.. JJT J'espère que j'ai bien "accepté" la réponse.
|
|
lundi 31 mars 2008 à 11:44:34 |
Re : Création de composants - constructeur

PtitTrain
|
"En effet, tu nous avais déjà parlé de ton projet de chemin de fer. Cela risque d'être un très gros truc, n'hésites donc pas à créer plusieurs classes (une classe = une fonction)"
Comment entends-tu "une classe = une fonction" ? pourrais-tu me donner une idée la-dessus ? (juste dans le principe, pour savoir si je comprend bien ce que tu veux dire..) merci JJT
|
|
lundi 31 mars 2008 à 19:14:30 |
Re : Création de composants - constructeur

florenth
|
Réponse acceptée !
Difficile de te répondre précisément, c'est justement tout là qu'est la difficulté d la POO !!
Mais ce qui est bon à savoir, par contre, c'est reconnaître quand ton code commence *partir en live*, ie quand un objet (TTrain par ex) commence à faire du boulot qui ne le concerne pas (sur TAiguillage par ex...).
Là c'est pas bon !
|
|
lundi 31 mars 2008 à 19:40:24 |
Re : Création de composants - constructeur

PtitTrain
|
J'essaierai de sentir, au fur et à mesure de la progression du projet, ce dont tu me parles. Peut-être qu'avec le temps, je progresserai dans ce sens !.. Merci pour tes bons conseils. bien amicalement JJT
|
|
Cette discussion est classée dans : création, composants, constructeur
Répondre à ce message
Sujets en rapport avec ce message
Problème de copier/coller de composants à la création [ par orelien ]
Bonjour,Mon problème est que je n'arrive pas à copier/coller des composants sur ma fiche au moment de la création.Une option/ un paramètre à dû être d
Création de composants [ par Bruto ]
Voila je voudrais créer un composant et si vous saviez m'indiquez un site qui explique ce procédé, cela me ferai du bien.Merci d'avance. Bruto --- Le
Problème de création de composants [ par LeGuepard ]
Salut, j'ai un petit problème de création de composants. J'aimerais créer un composant du stype TPanel, mais avec différents autres composants dedans
Création d'un objet [ par oberown ]
Comment créé ton un objet en delphi ?
Redimentionnement d'une fenetre et des composants .. [ par florenth ]
Bonjour,J'ai cree un programme ou lorsqu'on redimentionne la fenêtre cela redimentione et recentr certains composants.J'ai utilise l'evennement OnResi
Création composant de classe TCheckListBox [ par yvessimon ]
Je souhaite réaliser un composant du type TCheckListBoxmais avec 5 lignes de texte initialiser et sélectionnées lors de la création.J'arrive à créer
création d'un projet interbase/delphi [ par lornella ]
comment cree t-on on projet interbase/delphi (je veus les différentes étapes) s'il vous plait! a savoir ou on place les différents objets à utiliser!
composants graphiques (boutons...) [ par yvescollet ]
hello, je cherche des composants graphiques sympas à télécharger pour delphi. n'ayant rien trouver jusqu'à maintenant (rien d'intéressant en tout cas)
Création d'un port imprimante Standard TCP/IP [ par jerosau ]
Bonjour, J'aimerais réaliser un programme permettant de créer un port d'imprimante TCP/IP sans faire appel à une boite de dialogue. Je pense que c'est
Informations sur les composants Delphi... [ par MAsterC ]
Salut à tous!Je voudrai savoir s'il est possible des rendre le TButton en style (flat) ainsi que les ScrollBar du TMemo ou du TListBox, TRadioButton,
Livres en rapport
|
Derniers Blogs
QUELQUES TRUCS INTéRESSANTS (05/09/2010)QUELQUES TRUCS INTéRESSANTS (05/09/2010) par coq
Cette fois-ci : .NET Debug / Performance Sécurité SQL Server .NET Determining if a type is defined in the .NET Framework (blog de Scott Dorman) Ha tiens, je n'avais jamais vraiment pensé à utiliser le jeton de clé publique...
Cliquez pour lire la suite de l'article par coq ENUMERABLECOLLECTIONENUMERABLECOLLECTION par Matthieu MEZIL
Prenons le scénario suivant. On utilise MVVM. On a les deux classes suivantes dans le model : public class Child { } public class Parent { private ObservableCollection < Child > _children; public ObservableCollection < Child > Children { get {...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [HS] CHROME 6 + MOI = COUP DE GUEULE ![HS] CHROME 6 + MOI = COUP DE GUEULE ! par JeremyJeanson
Attention, le poste qui suit n'est pas la complainte d'une personne : Qui n'aime pas Chrome. D'un anti Google. D'un développeur qui a un poil énorme dans la main. Ceux qui me fréquentent savent que je change de navigateur favori tous les 2 ou 3 mois afin ...
Cliquez pour lire la suite de l'article par JeremyJeanson [WP7] UTILISER UN WRAPPANEL DANS UNE APPLICATION WINDOWS PHONE 7[WP7] UTILISER UN WRAPPANEL DANS UNE APPLICATION WINDOWS PHONE 7 par Audrey
Lors de la réalisation de ma 2ème application Windows Phone 7, j'ai souhaité utiliser un WrapPanel pour afficher plusieurs photos. Mais le contrôle WrapPanel ne fait pas parti de la liste des contrôles inclus dans le SDK de la version Beta des outils pour...
Cliquez pour lire la suite de l'article par Audrey [WP7] BESOIN D'AVOIR DES DONNéES EN CACHE[WP7] BESOIN D'AVOIR DES DONNéES EN CACHE par Nicolas
Les développeurs ASP.NET ont l'habitude de mettre des données en cache pour éviter de requêter a chaque fois la base de données. Et il est toujours utilie de penser que vos utilisateurs mobiles n'ont pas troujours une super connexion 3G/WIFI et un for...
Cliquez pour lire la suite de l'article par Nicolas
Logiciels
WebLogAndPass (1.0.0)WEBLOGANDPASS (1.0.0)WebLogAndPass est un logiciel permettant de mémoriser vos sites préférés et pour chacun d'entre-e... Cliquez pour télécharger WebLogAndPass uTorrent (2.0.4)UTORRENT (2.0.4)C'est un client BitTorrent très puissant et très performant. Comme son nom l'indique, uTorrent (m... Cliquez pour télécharger uTorrent Bureau de Gestion - ERP Devis Facturation (2.02)BUREAU DE GESTION - ERP DEVIS FACTURATION (2.02)- Version gratuite du 10/06/2010
Le Bureau de Gestion est un logiciel dédié à la gestion de l'en... Cliquez pour télécharger Bureau de Gestion - ERP Devis Facturation 4Videosoft Transfert iPod Mac (3.2.08)4VIDEOSOFT TRANSFERT IPOD MAC (3.2.08)4Videosoft Transfert iPod-Mac caractérise principalement à transférer les fichiers iPod vers Mac.... Cliquez pour télécharger 4Videosoft Transfert iPod Mac 4Videosoft HD Convertisseur (3.3.08)4VIDEOSOFT HD CONVERTISSEUR (3.3.08)Etant le meilleur HD Vidéo Convertisseur, 4Videosoft HD Convertisseur, vous pouvez regarder la vi... Cliquez pour télécharger 4Videosoft HD Convertisseur
|