+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Responsable Delphi

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    février 2013
    Messages
    1 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2013
    Messages : 1 066
    Points : 12 639
    Points
    12 639
    Billets dans le blog
    33

    Par défaut Apprendre à envoyer des mails avec Delphi

    Ce tutoriel de Robin Valtot, réalisé avec la version 10.1.2 Berlin (Entreprise et Starter) de Delphi, a pour objectif de montrer plusieurs façons d'envoyer un mail au moyen de cet EDI.

    S'appuyant sur la présence d'un client de messagerie, seront tour à tour étudiés un serveur SMTP, le pilotage d'Outlook et la mise en œuvre de l'ensemble MAPI.

    http://robin-valtot.developpez.com/t...s-avec-delphi/

    L'équipe Delphi de developpez.com profite de cette publication pour féliciter chaleureusement l'auteur de ce tutoriel qui vient d'être promu MVP Delphi : c'est la juste reconnaissance des qualités et du travail de ce jeune collaborateur. Bravo Robin, et merci pour tes contributions à la communauté !

    Et vous ?

    Que pensez-vous de ce tutoriel ?
    Comment utilisez-vous Delphi pour tout ce qui touche au Web ?


    Retrouver les meilleurs cours et tutoriels pour apprendre Delphi
    Retrouver les meilleurs cours et tutoriels pour apprendre la programmation
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  2. #2
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    mars 2010
    Messages
    600
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : mars 2010
    Messages : 600
    Points : 1 423
    Points
    1 423
    Billets dans le blog
    4

    Par défaut

    Merci Gilles

    Si vous souhaitez que je développe un sujet précis la prochaine fois, vous pouvez m'en parler : je ferai mon possible pour les prochains articles

  3. #3
    Membre habitué Avatar de der§en
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : septembre 2005
    Messages : 245
    Points : 185
    Points
    185

    Par défaut

    Curieux de voir si cela fonctionne avec un Exchange serveur…

  4. #4
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    novembre 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2006
    Messages : 245
    Points : 1 049
    Points
    1 049

    Par défaut

    Félicitations Retwas

    As tu pu avancer sur ton autre tutoriel en cours (le jeu du Démineur en FMX) ? Car il est également très bien !
    Je comprendrai parfaitement que tu n'ai pas eu le temps : je n'ai pas avancé moi non plus sur mon prochain tuto (remake du jeu The Light Corridor)

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    8 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 8 236
    Points : 18 878
    Points
    18 878
    Billets dans le blog
    4

    Par défaut

    Bonjour,

    perso, j'ai été dérouté, envoyer des mails, on avait déjà les FAQs, quelques tutoriels et les exemples d'Indy et je me disais (à tort peut être) à quoi bon
    En fait c'est plus l'approche par l'intermédiaire des interfaces pour utiliser les différentes possibilités qui est intéressante, à mon avis il aurait fallu plus expliquer le pourquoi de cette démarche.
    Ceci étant, bravo, je sais qu'il est difficile d'écrire des tutoriels, surtout si l'on n'est pas un littéraire. J’espère que beaucoup d'autres membres se sentent aussi des talents d'auteurs
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  6. #6
    Membre habitué
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    juin 2002
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2002
    Messages : 204
    Points : 183
    Points
    183

    Par défaut

    Beau tuto bien fait !

    Par contre en tant que vieux développeur autodidacte qui a commencé en Turbo pascal sur Amstrad (les jeunes zont jamais vu !!) je ne comprend pas tout !

    Les interfaces, je rejoins SergioMaster, elles apportent quoi de plus ? Je n'y vois qu'une couche de complexité supplémentaire. Peut-on m'éclairer ?
    Autre interrogation : dans l'objet TMessageSenderSMTP pourquoi faire des get et des set dans la gestion des property alors qu'il me semble qu'une simple référence à la variable interne fait l'affaire.

    Je vais tester de ce pas car je suis en plein dans l'envoi de mails !
    Actuellement j'utilise plutôt l'objet SmtpClient de ICS car je trouve la bibli Indy horriblement compliquée et assez mal documentée.

  7. #7
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    6 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 6 757
    Points : 21 594
    Points
    21 594

    Par défaut

    Citation Envoyé par Bernard B Voir le message
    Beau tuto bien fait !

    Par contre en tant que vieux développeur autodidacte qui a commencé en Turbo pascal sur Amstrad (les jeunes zont jamais vu !!) je ne comprend pas tout !

    Les interfaces, je rejoins SergioMaster, elles apportent quoi de plus ? Je n'y vois qu'une couche de complexité supplémentaire. Peut-on m'éclairer ?
    Autre interrogation : dans l'objet TMessageSenderSMTP pourquoi faire des get et des set dans la gestion des property alors qu'il me semble qu'une simple référence à la variable interne fait l'affaire.

    Je vais tester de ce pas car je suis en plein dans l'envoi de mails !
    Actuellement j'utilise plutôt l'objet SmtpClient de ICS car je trouve la bibli Indy horriblement compliquée et assez mal documentée.
    alors en lisant rapidement le code, je ne vois pas bien non plus l'intérêt des interfaces plutôt qu'une classe ancêtre avec des méthodes virtuelles....

    pour ce qui est des propriétés et des setters, c'est justement lié aux interfaces qui réclament des getter/setter qu'il faut donc implémenter.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Produits : UPnP, RemoteOffice, FlashPascal

  8. #8
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    mars 2010
    Messages
    600
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : mars 2010
    Messages : 600
    Points : 1 423
    Points
    1 423
    Billets dans le blog
    4

    Par défaut

    Citation Envoyé par der§en Voir le message
    Curieux de voir si cela fonctionne avec un Exchange serveur…
    J'ai testé sur le serveur Exchange je n'ai pas eu de problème

    Citation Envoyé par gbegreg Voir le message
    Félicitations Retwas

    As tu pu avancer sur ton autre tutoriel en cours (le jeu du Démineur en FMX) ? Car il est également très bien !
    Je comprendrai parfaitement que tu n'ai pas eu le temps : je n'ai pas avancé moi non plus sur mon prochain tuto (remake du jeu The Light Corridor)
    Merci gbegreg
    Pour le démineur je vais me pencher à nouveau dessus ce mois ci, il me reste seulement le soucis des images sur la version mobile ..
    Hâte de voir ton second tutoriel, je connais pas le jeu original, je dois être trop jeune

    Citation Envoyé par SergioMaster Voir le message
    Bonjour,

    perso, j'ai été dérouté, envoyer des mails, on avait déjà les FAQs, quelques tutoriels et les exemples d'Indy et je me disais (à tort peut être) à quoi bon
    En fait c'est plus l'approche par l'intermédiaire des interfaces pour utiliser les différentes possibilités qui est intéressante, à mon avis il aurait fallu plus expliquer le pourquoi de cette démarche.
    Ceci étant, bravo, je sais qu'il est difficile d'écrire des tutoriels, surtout si l'on n'est pas un littéraire. J’espère que beaucoup d'autres membres se sentent aussi des talents d'auteurs
    Merci pour tes remarques et effectivement je suis loin d'être littéraire..
    Les interfaces permettent justement d'apporter quelque chose de nouveau par rapport aux autres tutoriels ou FAQ et de passer cette impression de "déjà vu".

    Citation Envoyé par Bernard B Voir le message
    Beau tuto bien fait !

    Par contre en tant que vieux développeur autodidacte qui a commencé en Turbo pascal sur Amstrad (les jeunes zont jamais vu !!) je ne comprend pas tout !

    Les interfaces, je rejoins SergioMaster, elles apportent quoi de plus ? Je n'y vois qu'une couche de complexité supplémentaire. Peut-on m'éclairer ?
    Autre interrogation : dans l'objet TMessageSenderSMTP pourquoi faire des get et des set dans la gestion des property alors qu'il me semble qu'une simple référence à la variable interne fait l'affaire.

    Je vais tester de ce pas car je suis en plein dans l'envoi de mails !
    Actuellement j'utilise plutôt l'objet SmtpClient de ICS car je trouve la bibli Indy horriblement compliquée et assez mal documentée.
    Citation Envoyé par Paul TOTH Voir le message
    alors en lisant rapidement le code, je ne vois pas bien non plus l'intérêt des interfaces plutôt qu'une classe ancêtre avec des méthodes virtuelles....

    pour ce qui est des propriétés et des setters, c'est justement lié aux interfaces qui réclament des getter/setter qu'il faut donc implémenter.
    Merci Bernard B, je suis curieux de connaitre ton retour
    Les interfaces sont là pour apporter quelque chose de nouveau par rapport aux tutoriels existants mais aussi montrer une autre façon de coder.

    Une interface ne peut contenir que des méthodes (public) c'est pourquoi il y a des getter et setter.
    Si tu as besoin il y a une explication ici ou alors dans l'excellent livre de Nick Hodges "Coding in Delphi".

    Le point fort des interfaces est de permettre de découpler son code, limiter la dépendance des classes, avoir un code plus clair, plus propre et plus facile à maintenir, de proposer uniquement la ou les méthodes nécessaires et pas forcément travailler avec/sur l'objet en entier, la portée d'une interface permet aussi de se passer de sa libération.
    Cela permettra de voir un peu plus tard les injections de dépendances.

    Quoi qu'il en soit, comme le souligne Paul TOTH cela est aussi possible avec des classes "normales"

  9. #9
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    6 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 6 757
    Points : 21 594
    Points
    21 594

    Par défaut

    Citation Envoyé par retwas Voir le message
    Le point fort des interfaces est de permettre de découpler son code, limiter la dépendance des classes, avoir un code plus clair, plus propre et plus facile à maintenir, de proposer uniquement la ou les méthodes nécessaires et pas forcément travailler avec/sur l'objet en entier, la portée d'une interface permet aussi de se passer de sa libération.
    Cela permettra de voir un peu plus tard les injections de dépendances.
    alors oui et non, si tu regardes Firemonkey par exemple, ils ont mis des interfaces partout...sauf que comme ce n'est pas toujours bien documenté, on est amené à se plonger dans le code pour comprendre ce qu'il se passe, et là on tombe sur des interfaces pas plus documentés et il faut aller à la pêche pour retrouver où c'est implémenté bon ceci dit avec des classes virtuelles ça donne un peu la même chose, mais il est plus facile de retrouver les Constructor que quand on tombe sur ce genre de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    procedure TCommonCustomForm.BeginInternalDrag(const Source: TObject; const ABitmap: TObject);
    var
      D: TDragObject;
      DDService: IFMXDragDropService;
    begin
      if Assigned(Source) then
      begin
        Fillchar(D, SizeOf(D), 0);
        D.Source := Source;
        if TPlatformServices.Current.SupportsPlatformService(IFMXDragDropService, IInterface(DDService)) then
          DDService.BeginDragDrop(Self, D, FMX.Graphics.TBitmap(ABitmap));
      end;
    end;
    cf http://lookinside.free.fr/delphi.php?FMXBasedDragDrop

    mais pour le découplage c'est bien oui...par exemple au lieu de faire référence explicitement à une fiche mère, on peut exploiter une interface dans la fiche fille qui sera implémentée par la fiche mère, du coup la fiche fille pourra facilement être utilisée dans n'importe quel projet, y compris en changeant la fiche principale, pour peu qu'on implémente l'interface quelque part.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Produits : UPnP, RemoteOffice, FlashPascal

  10. #10
    Membre habitué
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    juin 2002
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2002
    Messages : 204
    Points : 183
    Points
    183

    Par défaut

    Bien il semble que les interface permettent de séparer l'utilisation de la mécanique interne. Mais dans la POO de base c'est bien la différence entre public et private.

    L'article dont retwas me donne le lien, je l'avais déjà parcouru il y a un certain temps. Je l'ai relu et je suis toujours aussi dubitatif. C'est compliqué et finalement on ne voit pas surgir l'élément incontournable qui fait que l'on s'y colle.
    Je n'avais pas tout suivi et rebelote c'est compliqué pour quoi ?
    Je dois dire que l'exemple que donne Paul est assez impressionnant. Perso je n'y comprend rien ! et le pire c'est que l'on ne devine pas à quoi cela peut conduire.
    La POO suivant son implémentation ce n'est pas toujours simple, mais les interfaces ressemblent à la forêt vierge.
    Les cerveaux plus jeunes sont certainement plus malléables mais là le mien à atteint le seuil de son incompétence !

  11. #11
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    mars 2010
    Messages
    600
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : mars 2010
    Messages : 600
    Points : 1 423
    Points
    1 423
    Billets dans le blog
    4

    Par défaut

    @PaulTOTH : Exactement c'est vrai qu'en débogage faut parfois aller chercher un peu plus loin, mais c'est une autre façon de coder que je trouve peut être plus "moderne", je vois d'ailleurs que tu les utilises pour le TMouse3D mais je n'ai pas la prétention de pouvoir t'apprendre quelque chose

  12. #12
    Membre habitué
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    juin 2002
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2002
    Messages : 204
    Points : 183
    Points
    183

    Par défaut

    OK retwas pour ta proposition, mais je n'ai pu te répondre en message privé, il semble que ta boite est saturée

  13. #13
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    6 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 6 757
    Points : 21 594
    Points
    21 594

    Par défaut

    Citation Envoyé par Bernard B Voir le message
    Bien il semble que les interface permettent de séparer l'utilisation de la mécanique interne. Mais dans la POO de base c'est bien la différence entre public et private.

    L'article dont retwas me donne le lien, je l'avais déjà parcouru il y a un certain temps. Je l'ai relu et je suis toujours aussi dubitatif. C'est compliqué et finalement on ne voit pas surgir l'élément incontournable qui fait que l'on s'y colle.
    Je n'avais pas tout suivi et rebelote c'est compliqué pour quoi ?
    Je dois dire que l'exemple que donne Paul est assez impressionnant. Perso je n'y comprend rien ! et le pire c'est que l'on ne devine pas à quoi cela peut conduire.
    La POO suivant son implémentation ce n'est pas toujours simple, mais les interfaces ressemblent à la forêt vierge.
    Les cerveaux plus jeunes sont certainement plus malléables mais là le mien à atteint le seuil de son incompétence !
    les interfaces c'est un juste un outil, des fois il est pratique de s'en servir.

    1) pour les DLL

    dans Delphi 7 Studio, et notamment le chapitre 19 qui est disponible en ligne, je parle entre autre des plugins. Il n'est pas possible de partager un objet entre une DLL et un EXE sous Delphi, mais avec une Interface ça ne pose aucun problème.

    2) l'héritage multiple

    dans la POO si tu veux manipuler deux objets différents par le même code, ils doivent avoir un ancêtre commun. Grâce aux interfaces tu peux lever cette limitation très facilement (j'en parle ici d'ailleurs).

    techniquement, une interface est un tableau de méthodes, dans Delphi 7 Studio je montre d'ailleurs qu'on peut très bien manipuler les interface à partir d'un simple RECORD
    Quand un objet implémente une interface donnée, c'est qu'il est capable de fournir un tableau contenant l'adresse de toutes les méthodes de l'interface dans un ordre établi. Du coup l'objet qui utilise ce tableau peu invoquer la méthode n°x car il sait que c'est la fonction attendue.

    tu peux même faire les choses à l'envers, imaginons que tu as deux objets qui ont une fonction Draw(Canvas: TCanvas), les deux fonctions sont totalement différentes , ne sont pas virtuelles, mais tu voudrais pouvoir appeler indifféremment l'une ou l'autre en plaçant ces objets dans un TList, ce n'est pas possible en POO, mais si tu ajoutes l'Interface suivante à ces deux objets;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
      IDraw = interface
      // ajouter ici un GUID généré par Ctrl+Shift+G
        procedure Draw(Canvas: TCanvas);
      end;
     
      TObjet1 = class(..., IDraw)
        procedure Draw(Canvas: TCanvas);
      end;
     
      TObjec2 = class(..., IDraw)
        procedure Draw(Canvas: TCanvas);
      end;
    tu peux manipuler les deux objets comme des TObject et faire un (TObject(List[Index]) as IDraw).Draw(Canvas);et ça c'est plutôt pratique...le seul bémol c'est que toute interface implique l'usage de IInterface qui ajoute AddRef et Release pour gérer la durée de vie de l'objet et si tu ne dérives pas de TInterfacedObject ou TComponent tu dois aussi ajouter ces méthodes.

    Citation Envoyé par retwas Voir le message
    @PaulTOTH : Exactement c'est vrai qu'en débogage faut parfois aller chercher un peu plus loin, mais c'est une autre façon de coder que je trouve peut être plus "moderne", je vois d'ailleurs que tu les utilises pour le TMouse3D mais je n'ai pas la prétention de pouvoir t'apprendre quelque chose
    si tu parles de ce TMouse3D, c'est normal, c'est un objet COM
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Produits : UPnP, RemoteOffice, FlashPascal

  14. #14
    Membre habitué
    Homme Profil pro
    Chef de projets
    Inscrit en
    août 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2008
    Messages : 125
    Points : 191
    Points
    191

    Par défaut

    Comme le dit "Paul Toth", les interfaces peuvent résoudre certains problèmes de base.
    Mais si on va un peu plus loin, les interfaces sont un élément de base de la programmation-objet. Effectivement la POO vous donne accès aux portées (private, public, ....). Mais cela serait vraiment trop restrictif de se limiter aux portées et au polymorphisme.

    Lorsque vous avez appris le dev, on vous a expliqué quelques règles de bases :
    - Si on connait le nombre d'itération et que l'on veut tout parcourir alors on utilise un FOR
    - Si on ne connait pas le nombre d'itération ou si l'on souhaite sortir avant d'avoir parcouru tous les items alors on utilise un WHILE
    - Ne pas copier-coller du code, mais en faire une procédure
    ...

    Pour le développement objet c'est pareil il y a des règles. Et une des règles de bases est de concevoir ses objets par composition. Afin que chacune des responsabilités de classe soit bien séparée. Les interfaces deviennent donc quasi obligatoires.
    Certains développeurs utilisent cette méthodologie :
    - Ecriture des interfaces
    - Ecriture des classes
    - Implémentation
    - Test fonctionnel (soit test unitaire / soit sous console dos)
    - Implémentation de l'interface graphique.

  15. #15
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    6 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 6 757
    Points : 21 594
    Points
    21 594

    Par défaut

    Citation Envoyé par joc02 Voir le message
    [...]
    Pour le développement objet c'est pareil il y a des règles
    [...]
    je crois que c'est ce qui me distingue des développeurs académiques, j'ai commencé la programmation tout seul sur un commodore 64 dans les années 80, j'ai découvert la programmation objet tout seul avec la doc de Turbo Pascal 5.5, j'ai découvert les interfaces quand elles ont été ajoutées à Delphi (2 ou 3 je ne sais plus)....bref j'ai une approche de la programmation très empirique et autodidacte...de nos jours Internet permet d'avoir toute la doc que l'on veux sur tous les sujets...mais ce que je vois c'est plus souvent "il faut appliquer les règles" que des explications sur le pourquoi...or à mon sens le pourquoi est fondamental, les règles sont secondaires et j'aime les transgresser car je sais pourquoi je le fais
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Produits : UPnP, RemoteOffice, FlashPascal

Discussions similaires

  1. envoyer des mails avec wss 3.0
    Par maxban dans le forum SharePoint
    Réponses: 6
    Dernier message: 11/11/2007, 19h52
  2. Envoyé un mail avec Delphi 2007 et Windows Mail
    Par rivierebruno22 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 03/08/2007, 10h08
  3. [C# CF2.0] Envoyer des mails avec PocketOulook
    Par Jérôme Lambert dans le forum Windows Mobile
    Réponses: 1
    Dernier message: 17/11/2006, 09h01
  4. [c#] Envoyé des mails avec c#
    Par olifile dans le forum Windows Forms
    Réponses: 1
    Dernier message: 15/10/2006, 20h57

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