IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Aide Tableau objet


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Canada

    Informations forums :
    Inscription : Août 2003
    Messages : 41
    Points : 31
    Points
    31
    Par défaut Aide Tableau objet
    Bonjour,

    Je suis pas mal nouveau dans la programmation objet et avec Delphi (en fait, je ne suis qu'un programmeur amateur) et j'aimerais savoir s'il est possible de créer un tableau d'objet et surtout, si oui, de quelle façon?

    Avec mon application, je veux entrer différentes informations (exemple : taux d'intérêt 1, emprunt 1, amortissement 1, taux d'intérêt 2, emprunt 1, amortissement 2, etc ...) et effectuer des opérations sur ces informations.

    Ça serait plus facile pour le traitement de ces informations si je pouvais les traiter comme un tableau (taux d'intérêt[i], emprunt[i] et amortissement[i]).

    Un coup de pouce sera grandement apprécié.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Bonjour et bienvenue sur le forums de Développez.com

    Plutôt que de faire un tableau de valeur par champ autant utiliser vraiment la notion objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    type
      TEmprunt = class
      public
       FNom: String;
       FTaux: Double;
       FAmortissement: Double;
      end;
    Tu peux utiliser des tableaux de cet objet par la suite pour stocker tes différents emprunts mais c'est moins pratique à utiliser qu'un TList ou TObjectList qui est fait spécialement pour ça.
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Canada

    Informations forums :
    Inscription : Août 2003
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    Merci pour cette réponse mais elle est un peu comme du chinois pour moi ...

    J'ai créé mon application avec un formulaire TForm dans lequel j'ai mis plein de composants TEdit, TComboBox, TDateTimePicker pour que l'utilisation saisisse de l'information à l'écran (j'ai plusieurs lignes qui ont la même structure et chaque ligne est composée de plusieurs TEdit, TComboBox, TDateTimePicker).

    Je veux ensuite traiter l'information saisie (i.e. faire pleins de calculs) et afficher les réponses.

    Peut-être suis-je mal parti tout simplement?

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 455
    Points : 24 867
    Points
    24 867
    Par défaut
    En fait, tu n'es pas obligé de faire de l'objet, tu peux très bien faire des tableaux de nombres tout simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TauxInterets: array of Double;
    Emprunts: array of Double;
    Amortissements: array of Double;
    Ensuite, tu peux changer la taille du tableau avec SetLength

    tu peux aussi faire des tableaux à taille fixe mais cela pose divers problèmes, comme comment savoir ce qui est vraiement actif, lorsque l'on a plus de données que peut en contenir le tableau, ...

    Si tu veux absolument utiliser des objets, maitrise tu déjà le Create et le Free ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre chevronné Avatar de chaplin
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 215
    Points : 1 819
    Points
    1 819
    Par défaut
    Est ce que le but est de faire du Excel avec Delphi ?

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Canada

    Informations forums :
    Inscription : Août 2003
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    À shailetroll :

    J'utilise déjà les array dynamiques mais ma préoccupation se situe surtout entre l'interface d'entrée de données et les opérations à faire sur ces données. Et non, les mots Create et Free ne me disent pas grand chose ... (ça me fait penser aux pointeurs mais je suis loin d'être à l'aise là-dedans).

    À chaplin :

    Le but n'est pas de faire du EXCEL. J'ai déjà fait ça en EXCEL mais ça me donne un chiffrier trop gros (plus de 40 000 lignes et 40 colonnes, le tout avec des formules lourdes telles RECHERCHEV, etc.).

    L'idéal serait peut-être de développer la fonction en VB pour éviter mes 40 000 lignes mais je voulais m'amuser à développer le tout en Delphi, notamment pour avoir un plus beau look pour la saisie de données.

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Euh mais tu dois donc stocker dans un fichier persistant les données que l'utilisateur peut rentrer alors ? Dans ce cas il ta faut une base de donnée (le plus simple) sinon les données seront perdues une fois le programme fermé.
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Canada

    Informations forums :
    Inscription : Août 2003
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    En effet, j'ai fait une procédure qui stocke l'information entrée dans un fichier Text et une autre qui permet d'aller relire ce même fichier et de retraiter l'information (ou la modifier) au besoin.

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Canada

    Informations forums :
    Inscription : Août 2003
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    J'ai l'impression de ne pas bien me faire comprendre.

    Peut-être est-ce parce que j'utilise Delphi de la mauvaise façon???

    J'ai de la misère à faire un parallèle entre ce que je veux faire et ce qui existe déjà ...

    À l'ouverture de l'application, l'utilisation voit un écran de saisie. Il donne un nom à sa session de travail (qui servira de base pour créer le fichier texte des infos à sauvegarder).

    Ensuite, il se déplace (avec des tabulations ou avec sa souris) dans différents champs. Il y a plusieurs lignes contenant différentes composantes de différents types mais chaque ligne est organisée de la même façon.

    Un calcul différent doit être fait basé sur l'information entrée dans toutes les cases de chaque ligne et il y a un total pour l'ensemble des lignes.

    J'ai donc créé des procédures qui lisent les informations entrées et une fonction qui retourne la valeur à calculer.

    Le nom de chacune des composantes est différents (exemple : Montant01, Taux01, ..., Montant02, Taux02, etc.) mais puisque les étapes à faire sont répétitives, j'aurais aimé pouvoir appelé les composantes Montant[i], Taux[i], etc.)

  10. #10
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Dans ce cas si tes controles sont nommées Montant1---> Montantn, il te faut faire une boucle pour parcourir les contrôles de saisies sur ta fiche et de sauvegarder les valeurs dans les tableaux correspondant.
    Regarde du coté FindComponent
    Tiens un petit test vite fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var i : Integer;
        Comp : TComponent;
    begin
      for i := 0 to ComponentCount -1 do
      begin
        Comp := FindComponent(Format('Montant%d',[i+1]));
        if (Comp is TEdit) then
          Memo1.Lines.Add('Controle : ' + Comp.Name + ' Valeur : '+ (Comp as TEdit).Text);
      end;
    On progresse .....

  11. #11
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 455
    Points : 24 867
    Points
    24 867
    Par défaut
    Citation Envoyé par EricL Voir le message
    Et non, les mots Create et Free ne me disent pas grand chose
    Lol, c'est les 2 premiers instructions indispensable pour créer et libérer des objets, je vais être un peu sévère mais apprend les bases du langage avant de vouloir te lancer si loin dans le développement ... surtout que tu n'as pas besoin d'objet dans l'histoire, d'ailleurs, la solution d'Andry avec FindComponent peu résoudre dans un premier temps ton problème, tu arriveras vite à la limite ...

    Pour la Base de Données, tout dépend le Delphi que tu as ? Perso ? Pro ???
    Et le composant le plus proche de ce que tu veux serait le TDBCtrlGrid, qui permet de faire un tableau d'Edit, Combo, ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Canada

    Informations forums :
    Inscription : Août 2003
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    WOW, merci beaucoup Andry et ShailLeTroll : je vois maintenant la lumière au bout du tunnel.

    Je vois que FindComponent a l'air à faire exactement ce que je cherchais et même encore plus car je vois que je peux créer des composantes au fur et à mesure dans mon application.

    ShailLeTroll : j'ai la version 6 Personal et mon but n'est pas de devenir un développeur à temps plein mais de demeurer amateur (j'ai d'ailleurs posté mon message dans la section Débutant ...).

    Je me suis procuré 2 livres sur Delphi : Le Tout en Poche de Michel Pelletier que je trouve trop basic et le Dephi 6 Student Edition de Steve Teixera et Xavier Pacheco mais il a l'air écrit pour utilisateurs avancés seulement (déjà à partir de la page 150 il traite de Techniques évoluées dans un ouvrage qui compte plus de 800 pages). Ça me prendrait quelque chose entre les 2, peut-être un ouvrage qui détaillerait la 1re partie de Teixera et Pacheco (Principes de développement).

  13. #13
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Points : 757
    Points
    757
    Par défaut
    pour info la base de données je pense pas que ce soit absolument nécéssaire pour ton cas, si tu maitrises pas en plus !

    Le fichier texte est déjà pas mal, un .ini serait peut-être plus pratique, mais bon, faut savoir ce qu'est un fichier ini, comment ça se manipule, etc... et vu que tu as l'air d'avoir réussi à bien utiliser ton fichier txt, pas la peine de s'embêter.

    Pour le reste, je trouve quelques une des idées évoquées ci et là intéressantes et ferais un mixte:

    utiliser un TObjectList : liste dynamique d'objet
    définir un type d'objet qui correspond à ton type d'info (comme dit plus haut).

    Après tu charges chaque ligne de ton fichier dans une nouvelle entrée du TObjectList, et le tour est joué...

    Après, je sais pas comment tu veux gérer tout ça graphiquement ? Lecture, ou bien saisie uniquement ... voire des modifications (mais là ça implique de réécrire le fichier à chaque fois...) ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. aide tableau svp
    Par mator dans le forum C
    Réponses: 3
    Dernier message: 11/06/2006, 15h54
  2. [tableau objet] impossible à remplir
    Par vasilov dans le forum C++
    Réponses: 6
    Dernier message: 23/03/2006, 14h26
  3. [POO] Tri tableau objets
    Par Metallic-84s dans le forum Langage
    Réponses: 4
    Dernier message: 21/02/2006, 19h53
  4. Aide Tableau vbs
    Par Travailleuuse06 dans le forum ASP
    Réponses: 2
    Dernier message: 29/12/2005, 14h01
  5. tableau objet
    Par harris_macken dans le forum C++
    Réponses: 9
    Dernier message: 20/06/2005, 21h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo