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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté 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
    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
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    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?
    @

  3. #3
    Membre expérimenté 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
    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 chevronné

    Inscrit en
    Avril 2003
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 284
    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 expérimenté 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
    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 chevronné

    Inscrit en
    Avril 2003
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 284
    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

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