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

Langage Pascal Discussion :

[POO] La programmation Orientée Objet en Pascal


Sujet :

Langage Pascal

  1. #1
    Membre actif Avatar de Ultima
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 223
    Points : 261
    Points
    261
    Par défaut [POO] La programmation Orientée Objet en Pascal
    Bonjour,
    J’aimerais discuter de la POO sur Turbo Pascal, Free Pascal et éventuellement sur tous autres compilateurs pascaux compatibles.
    J’aimerais tout d’abord savoir si quelqu'un connait un site sur lequel on pourrait trouver des cours ou des tutoriels.
    J’ai bien entendu cherché ici, mais les seuls choses que j’ai trouvées sont des exercices.
    Quant à Google…
    Mercie pour vos participation que je l’espère, seront nombreuses.

  2. #2
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    bonjour
    juste une question pourquoi ne pas passer a un langage orienté objet
    mais en ce qui concerne pascal
    Citation Envoyé par Ultima
    ’aimerais tout d’abord savoir si quelqu'un connait un site sur lequel on pourrait trouver des cours ou des tutoriels.
    tu es deja dessus ici
    au fait tu travailles avec TP?
    @
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  3. #3
    Membre actif Avatar de Ultima
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 223
    Points : 261
    Points
    261
    Par défaut
    Mercie Krachik,
    Juste pour l’info, je me suis mis au C++ les vacances d’été passées, mais puisque je fais du pascal en cours, je n’ai pas trop le temps de faire du c++.
    J’utilise un compilateur Free Pascal, mais j’ai appris le pascal surtout grâce à des tutoriaux de TP7.
    Disons que pour l’instant, à part l’unité Graph, je ne vois la différence qu’il y a entre Free Pascal et Turbo Pascal (Mais je sais qu’il y en a).
    J’ai surtout choisis FPC parce que c’est l’un des mieux notés sur developpez.com.

  4. #4
    Membre éclairé

    Inscrit en
    Avril 2003
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 284
    Points : 773
    Points
    773
    Par défaut
    J'en vois une énorme: la programmation fenêtrée WIN32

    compile ce bout de code par exemple et tu vas comprendre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    {******************************************************************************
     *                                                                            *
     *                   Exemple de creation de divers boutons                    *
     *                                                                            *
     ******************************************************************************}
     
     
    Program bouton ;
     
    {$APPTYPE GUI}
     
    Uses Windows;
     
     
    Var WinClass: TWndClassa;
        Inst: HINST;
        hWindow: HWND;
        hBouton1 : HWND;
        hbitbouton : HWND;
        hicobouton  : HWND;
        hradiobutton1 : HWND;
        hradiobutton2 : HWND;
        hradiobutton3 : HWND;
        TheMessage: TMsg;
     
    { fonction qui gere les evenements de votre fenetre }
    function WindowProc(hWindow: HWnd; Message,wParam,lParam: Integer): Integer; stdcall;
    begin
      Result := 0;
      { Gestion des messages }
      case Message of
     
        WM_DESTROY:
        begin
          postquitmessage(0);
        end;
     
      else
        Result := DefWindowProc(hWindow, Message, wParam, lParam);
      end;
    end;
     
    begin
      { enregistrement WndClass }
      Inst := hInstance;
      with WinClass do
      begin
        style              := cs_classdc Or cs_parentdc;
        lpfnWndProc        := @WindowProc;
        hInstance          := Inst;
        hbrBackground      := color_btnface + 1;
        lpszClassname      := 'MyWindowClass';
        hIcon              := LoadIcon(0, IDI_APPLICATION);
        hCursor            := LoadCursor(0, IDC_ARROW);
      end; {  du with }
     
      RegisterClass(WinClass);
     
      { Creation de la fenetre }
      hWindow := CreateWindowEx(WS_EX_WINDOWEDGE,'MyWindowClass','Boutons',
                                WS_SYSMENU	 or WS_VISIBLE,
                                (Getsystemmetrics(SM_CXSCREEN) div 2)-(160 div 2),
                                (Getsystemmetrics(SM_CYSCREEN) div 2)-(446 div 2),
                                160,446,0,0,Inst,nil);
     
                hBouton1 := CreateWindow('Button','Bouton normal',WS_VISIBLE or WS_CHILD or BS_TEXT or WS_TABSTOP,
                10,8,130,25, hWindow, 0, Inst, nil);
     
                CreateWindow('Button','Bouton2',WS_VISIBLE or WS_CHILD or BS_PUSHLIKE or BS_AUTORADIOBUTTON or BS_TEXT or WS_TABSTOP,
                10,44,60,25, hWindow, 0, Inst, nil);
     
                CreateWindow('Button','Bouton3',WS_VISIBLE or WS_CHILD or BS_PUSHLIKE or BS_AUTORADIOBUTTON or BS_TEXT or WS_TABSTOP,
                80,44,60,25, hWindow, 0, Inst, nil);
     
                CreateWindow('Button','BS_AUTO3STATE',WS_VISIBLE or WS_CHILD or BS_AUTO3STATE or BS_TEXT or WS_TABSTOP,
                10,70,130,25, hWindow, 0, Inst, nil);
     
                CreateWindow('Button','GroupBox1',WS_VISIBLE or WS_CHILD or BS_GROUPBOX,
                5,95,140,95, hWindow, 0, Inst, nil);
     
                CreateWindow('Button','RadioButton1',WS_VISIBLE or WS_CHILD or BS_AUTORADIOBUTTON or WS_TABSTOP,
                10,118,113,17, hWindow, 0, Inst, nil);
     
                CreateWindow('Button','RadioButton2',WS_VISIBLE or WS_CHILD or BS_AUTORADIOBUTTON or WS_TABSTOP,
                10,142,113,17, hWindow, 0, Inst, nil);
     
                CreateWindow('Button','RadioButton3',WS_VISIBLE or WS_CHILD or BS_AUTORADIOBUTTON or WS_TABSTOP,
                10,166,113,17, hWindow, 0, Inst, nil);
     
                CreateWindow('Button','CheckBox1',WS_VISIBLE or WS_CHILD or BS_AUTOCHECKBOX or WS_TABSTOP,
                20,195,97,17, hWindow, 0, Inst, nil);
     
                CreateWindow('Button','CheckBox2',WS_VISIBLE or WS_CHILD or BS_AUTOCHECKBOX or WS_TABSTOP,
                20,215,97,17, hWindow, 0, Inst, nil);
     
                CreateWindow('Button','texte à gauche',BS_LEFTTEXT  or WS_VISIBLE or WS_CHILD or BS_AUTOCHECKBOX or WS_TABSTOP,
                15,235,115,17, hWindow, 0, Inst, nil);
     
                CreateWindow('Button','BS_MULTILINE  Quand on a un texte long à mettre sur le bouton',BS_MULTILINE		  or WS_VISIBLE or WS_CHILD or WS_TABSTOP,
                15,265,115,87, hWindow, 0, Inst, nil);
     
      hicobouton := CreateWindow('Button','',BS_ICON  or WS_VISIBLE or WS_CHILD  or WS_TABSTOP,
                  15,360,45,37, hWindow, 0, Inst, nil);
                  sendmessage(hicobouton,BM_setimage,IMAGE_ICON,loadICON(0,IDI_EXCLAMATION));
     
      hbitbouton := CreateWindow('Button','',BS_BITMAP  or WS_VISIBLE or WS_CHILD  or WS_TABSTOP,
                  85,360,45,37, hWindow, 0, Inst, nil);
                  sendmessage(hbitbouton,BM_setimage,IMAGE_BITMAP,loadBITMAP(0,MAKEINTRESOURCE(OBM_CHECK)));
     
      SetFocus(hBouton1);
      UpdateWindow(hWindow);
     
      {La boucle principale}
      while GetMessage(TheMessage,0,0,0) do begin
        if not IsDialogMessage(hWindow,TheMessage) then begin
          TranslateMessage(TheMessage);
          DispatchMessage(TheMessage);
        end;
      end;
    end.

  5. #5
    Membre actif Avatar de Ultima
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 223
    Points : 261
    Points
    261
    Par défaut Thanks
    Merci pour ton code Clandestino,
    C’est intéressant, ça donne une idée de comment programmer des boutons, mais j’avoue que je ne sais pas encore utiliser l’unité Windows.
    Je crois qu’avec ton code et quelque bon codes de SWAG, je vais pouvoir faire de grande choses . . .

    Remarque : Ce n’est pas tout à fait du pascal, t’as oublié la directive {$MODE DELPHI}, rien de grave, je l’ai remarqué par ton utilisation du mot "Result".

  6. #6
    Membre éclairé

    Inscrit en
    Avril 2003
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 284
    Points : 773
    Points
    773
    Par défaut
    La programmation de l'unité windows, donc de l'api offerte par les systemes d'exploitations récents de microsoft est très intéressante dans la mesure ou elle te permet de t'affranchir du mode "fenetre de style dos" et d'offrir à tes programmes une interface moderne...
    Des exemples de programmation win32 en pascal ne sont pas légion mais tu pourras en trouver des quantité en C++. la traduction n'est pas très difficile...
    Le fichier d'aide de l'api win32 s'appelle win32.hlp (google) et il te décrit les fonctions et procedures disponibles...

    Un site qui d'après moi est la référence sur le sujet :
    http://www.angelfire.com/hi5/delphizeus/
    L'auteur utilise le compilateur de delphi (mais pas la vcl). Tout ce qu'il explique peut-etre facilement compilé par freepascal avec très peu de modifications...

    N'hésite pas à poser des questions si tu as des problèmes précis de programmation win32 à résoudre, si je ne connais pas encore la réponse, ce sera l'occasion pour moi de la chercher avec toi...

    Clandestino
    Dcc32 / fpc user

  7. #7
    Membre éclairé Avatar de Tuxico
    Profil pro
    Étudiant
    Inscrit en
    Août 2003
    Messages
    662
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2003
    Messages : 662
    Points : 770
    Points
    770
    Par défaut
    La programmation de l'unité windows, donc de l'api offerte par les systemes d'exploitations récents de microsoft est très intéressante dans la mesure ou elle te permet de t'affranchir du mode "fenetre de style dos" et d'offrir à tes programmes une interface moderne...
    Des exemples de programmation win32 en pascal ne sont pas légion mais tu pourras en trouver des quantité en C++. la traduction n'est pas très difficile...
    Le fichier d'aide de l'api win32 s'appelle win32.hlp (google) et il te décrit les fonctions et procedures disponibles...
    vive la portabilité
    ★ Pascal/Java/C/xhtml,css/SQL/Mips
    ★ Linux/unix

  8. #8
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 944
    Points : 59 433
    Points
    59 433
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    Tu peux voir quelques exemples très simples d'application de la POO en Pascal à la programmation Win32 : http://alcatiz.developpez.com/tutori...ge=pg_owlintro et chapitres suivants.

    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  9. #9
    Membre actif Avatar de Ultima
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 223
    Points : 261
    Points
    261
    Par défaut
    Bonjour, Merci à tous pour vos participations, mercis notamment à Clandestino, krachik et Alcatîz pour les liens. T’inquiet Tuxico, quand on utilise une unité spécifique de Windows, on ne s’attend pas à faire fonctionner l’application sur une autre plateforme,merci quand même d’avoir apporté ton point de vu.

  10. #10
    Membre éclairé Avatar de Tuxico
    Profil pro
    Étudiant
    Inscrit en
    Août 2003
    Messages
    662
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2003
    Messages : 662
    Points : 770
    Points
    770
    Par défaut
    T’inquiet Tuxico, quand on utilise une unité spécifique de Windows, on ne s’attend pas à faire fonctionner l’application sur une autre plateforme,merci quand même d’avoir apporté ton point de vu.
    c'était ironique mais de rien
    ★ Pascal/Java/C/xhtml,css/SQL/Mips
    ★ Linux/unix

  11. #11
    Membre habitué Avatar de nouri.moudhffar
    Inscrit en
    Juin 2006
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 138
    Points : 142
    Points
    142
    Par défaut
    si vous voullez appliquer "pascal" sur la POO, utilisez delphi
    PC=Dévélopement=liberty
    open source=linux= liberty

  12. #12
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Turbo Pascal et leur successeurs compatibles savent aussi faire de la POO, et parfois de meilleure qualité... Delphi n'est pas l'unique solution pour l'objet en Pascal, les nouveaux compilateurs savent faire de la POO et implémentent les derniers concepts.
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

Discussions similaires

  1. Réponses: 13
    Dernier message: 29/04/2014, 23h27
  2. PHP et POO (Programmation Orienté Objet)
    Par Marie_7 dans le forum Langage
    Réponses: 3
    Dernier message: 16/05/2013, 19h59
  3. Réponses: 160
    Dernier message: 18/07/2012, 21h39
  4. Réponses: 4
    Dernier message: 08/01/2009, 11h56
  5. [POO] apprendre la programmation orientée objet
    Par Invité dans le forum Langage
    Réponses: 5
    Dernier message: 10/12/2005, 11h33

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