Graphique dans pascal?

الموضوع في 'لغات البرمجة' بواسطة scorshy, بتاريخ ‏27 أفريل 2007.

حالة الموضوع:
مغلق
  1. scorshy

    scorshy عضو

    إنضم إلينا في:
    ‏6 جانفي 2007
    المشاركات:
    88
    الإعجابات المتلقاة:
    9
      27-04-2007 19:39
    Comment inserer du graphique dans pascal ??


    SVP

    les amis
    !!
    !
     
  2. programmeur

    programmeur كبار الشخصيات

    إنضم إلينا في:
    ‏21 ماي 2006
    المشاركات:
    2.831
    الإعجابات المتلقاة:
    330
      27-04-2007 23:51


    slt les amis


    c'est un peux compliquer mon ami meme moi g sui pas bon en graphique avec pascal mais de toute facons g te di comment

    il te faut des bibliothèque graphique il faut ke tu gere ta carte graphique et il te faut gerer la sourie et bqs de chse g te passse un exemple pas tres complique g pense

    كود (text):
    program TestGraphique;

    uses
      Forms,
      Testgraphique1 in 'Testgraphique1.pas' {Form1};

    {$R *.RES}

    begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);

    :hi: :hi: :hi: :hi: :hi:


      Application.Run;
    end.

     
    et + ca

    كود (text):
     Cette démo montre comment utiliser le composant TGraphique.                 }
    {------------------------------------------------------------------------------}
    unit Testgraphique1;

    interface

    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, ExtCtrls, Graphique;

    type
      TForm1 = class(TForm)
        Graphique1: TGraphique;
        Panel1: TPanel;
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Graphique1MouseMove(Sender: TObject; Shift: TShiftState; X,
          Y: Integer);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
        Procedure Trace;
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.DFM}

    Procedure TForm1.Trace;
    Var
       I  : Integer;
       P  : TPoint;

    Begin
       For I:=0 To 9 Do
        begin
           P.X:=I * 10;
           P.Y:=I * 8;
           Graphique1.DefinitCourbe(1,I,P);
        end;
       For I:=0 To 9 Do
        begin
           P.X:=I * 10;
           P.Y:=I * 25;
           Graphique1.DefinitCourbe(2,I,P);
        end;
       Graphique1.Legende[1]:='Courbe Rouge';
       Graphique1.Legende[2]:='Courbe Jaune';
       Graphique1.TraceCourbe([1,2]);
    End;

    procedure TForm1.Button1Click(Sender: TObject);

    begin
       Graphique1.Clear;
       Graphique1.Stylecourbe:=sgcPoints;
       Trace;

    end;

    procedure TForm1.Graphique1MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    begin
       Panel1.Caption:=IntToStr(X) + ' x ' + IntTostr(Y);
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    begin
       Graphique1.Clear;
       Graphique1.Stylecourbe:=sgcLignes;
       Trace;

    end;

    procedure TForm1.Button3Click(Sender: TObject);
    begin
       Graphique1.Clear;
       Graphique1.Stylecourbe:=sgcBarres;
       Trace;
    end;

    end.
     
    et + ca​
     
  3. programmeur

    programmeur كبار الشخصيات

    إنضم إلينا في:
    ‏21 ماي 2006
    المشاركات:
    2.831
    الإعجابات المتلقاة:
    330
      27-04-2007 23:53
    كود (text):
    {------------------------------------------------------------------------------}
    { Graphique est un petit traceur graphique simple mais complet.                }
    { Le ChartFX de DELPHI n'est disponible que dans les versions professionnelles,}
    { et ceux qui sont disponibles, dans la version DESKTOP, sont des versions de  }
    { démonstration publicitaire.                                                  }
    { Ce composant peut évoluer et a le mérite d'être d'un emploi facile.          }
    { Libre à vous de le modifier et de le compléter. Si vous modifiez le source,  }

    unit Graphique;

    interface

    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

    Type
        TGraphiqueType =(sgtRectangle, sgtBoundRec);
        TStyleGrille   = (sgtPoints,sgtVertLignes,sgtHorzLignes,sgtMixteLignes);
        TStyleLigneGrille = (sgtContinue,sgtAlterne_1,sgtAlterne_2);
        TStyleCourbe = (sgcPoints,sgcLignes,sgcPointilles,sgcBarres);
        TypeEchelle = (Automatique,Manuelle);
        TEchelle    = set of TypeEchelle;
        TCourbe = Array Of TPoint;




      TGraphique = class(TGraphicControl)
      private
        { Déclarations privées }
        FNetoyer       : Boolean;
        FPasGrid       : Integer;
        FGrille        : Boolean;
        FStyleGrille   : TStylegrille;
        FStyleLigneGrille : TStyleLigneGrille;
        FColorGrid     : TColor;
        FCouleurRegle  : TColor;
        FPen           : TPen;
        FBrush         : TBrush;
        FShape         : TGraphiqueType;
        FStyleCourbe   : TStyleCourbe;
        FZonelegende   : Integer;
        Ftitre         : String;
        FPoliceTitre   : TFont;
        FPoliceRegle   : TFont;
        FPoliceLegende : TFont;
        FRegle         : Boolean;
        FXZero         : Integer;
        FYZero         : Integer;
        FCouleurCourbe_1 : TColor;
        FCouleurCourbe_2 : TColor;
        FCouleurCourbe_3 : TColor;
        FCouleurCourbe_4 : TColor;
        FCouleurCourbe_5 : TColor;
        FCouleurCourbe_6 : TColor;
        FTraceCourbe     : Boolean;
        Tracer           : Array[1..6] Of Boolean;
        TabCourbe        : Array[1..6] Of TCourbe;

        FLegende         : Array[1..6] Of ShortString;
        FTypeEchelle     : TEchelle;
        Fseries          : Integer;
        FEchelleDecimale : Boolean;
        Procedure SetPen(Value : TPen);
        Procedure SetBrush(Value : TBrush);
        Procedure SetShape(Value : TGraphiqueType);
        Procedure SetGrille(Value : Boolean);
        Procedure SetStyleGrille(Value : TStyleGrille);
        Procedure SetColorGrid(Value : TColor);
        Procedure SetPasGrid(Value : Integer);
        Procedure SetLigneGrille(Value : TStyleLigneGrille);
        Procedure SetZoneLegende(Value : Integer);
        Procedure SetTitre(Value : String);
        Procedure SetPolicetitre(Value : TFont);
        Procedure SetRegle(Value : Boolean);
        Procedure SetCouleurRegle(Value : TColor);
        Procedure SetPoliceRegle(Value : TFont);
        Procedure SetPoliceLegende(Value : TFont);
        Procedure SetStyleCourbe(Value : TStyleCourbe);
        Procedure SetTypeEchelle(Value : TEchelle);
        Procedure SetSeries(Value : Integer);
        Procedure SetLegende(L : Integer;T : String);
        Function  GetLegende(L : Integer) : String;
      protected
        { Déclarations protégées }
        Procedure MouseMove(Shift : TShiftState;X,Y : Integer);override;
        Procedure Paint; override;
      public
        { Déclarations publiques }
        Constructor Create(AOwner : TComponent); override;
        Destructor Destroy; override;
        Property  PositionX : Integer Read FXZero;
        Property  PositionY : Integer Read FYZero;
        Procedure TraceCourbe(Value : Array Of Integer);
        Procedure DefinitCourbe(Courbe,N : Integer;Point : TPoint);
        Property  Legende[L : Integer] : String Read GetLegende Write SetLegende;
        Procedure Clear;
      published
        { Déclarations publiées }
        Property Align;
        Property Grille : Boolean Read FGrille Write SetGrille;
        Property StyleGrille : TStyleGrille read FStyleGrille Write SetStyleGrille;
        Property LigneGrille : TStyleLigneGrille Read FStyleLigneGrille
                               Write SetLigneGrille;
        Property CouleurGrille : TColor Read FColorGrid Write SetColorGrid;
        Property PasGrille     : Integer Read FPasGrid Write SetPasGrid;
        Property StyleCourbe  : TStyleCourbe Read FStyleCourbe Write SetStyleCourbe;
        Property Cadre : TPen Read FPen Write SetPen;
        Property Fond  : TBrush Read FBrush Write SetBrush;
        Property Height default 200;
        Property Width default 320;
        Property Style_cadre : TGraphiqueType Read FShape Write SetShape;
        Property Dragcursor;
        Property DragMode;
        Property OnDragDrop;
        Property OnDragOver;
        Property OnEndDrag;
        Property OnMouseDown;
        Property OnMouseUp;
        Property OnMouseMove;
        Procedure StyleChanged(Sender : TObject);
        Property ZoneLegende : Integer Read FZoneLegende Write SetZoneLegende;
        Property Titre : String Read FTitre Write SetTitre;
        Property PoliceTitre : TFont Read FPoliceTitre Write SetPoliceTitre;
        Property Regles : Boolean Read FRegle Write SetRegle;
        Property CouleurRegle : TColor Read FCouleurRegle Write SetCouleurRegle;
        Property PoliceRegle : TFont Read FPoliceRegle Write SetPoliceRegle;
        Property PoliceLegende : TFont Read FPoliceLegende Write SetPoliceLegende;
        Property CouleurCourbe_1 : TColor Read FCouleurCourbe_1 Write FCouleurCourbe_1;
        Property CouleurCourbe_2 : TColor Read FCouleurCourbe_2 Write FCouleurCourbe_2;
        Property CouleurCourbe_3 : TColor Read FCouleurCourbe_3 Write FCouleurCourbe_3;
        Property CouleurCourbe_4 : TColor Read FCouleurCourbe_4 Write FCouleurCourbe_4;
        Property CouleurCourbe_5 : TColor Read FCouleurCourbe_5 Write FCouleurCourbe_5;
        Property CouleurCourbe_6 : TColor Read FCouleurCourbe_6 Write FCouleurCourbe_6;
        Property Echelle : TEchelle Read FTypeEchelle Write SetTypeEchelle;
        Property Series  : Integer Read FSeries Write SetSeries;
        Property EchelleDecimale : Boolean Read FEchelleDecimale Write FEchelleDecimale;
      end;

    procedure Register;

    implementation

    Var
       Max   : TPoint;
       DX,DY : Double;


    {------------------------------------------------------------------------------}
    Constructor TGraphique.Create(AOwner : TComponent);
    Var
       I   : Integer;

    Begin
       inherited Create(AOwner);
       Width:=320;
       Height:=200;
       FPen:=TPen.Create;
       FPen.OnChange:=StyleChanged;
       FBrush:=TBrush.Create;
       FBrush.OnChange:=StyleChanged;
       FPasGrid:=20;
       FBrush.Color:=clBlack;
       FPen.Color:=clWhite;
       FColorGrid:=clGreen;
       FPoliceTitre := TFont.Create;
       FPoliceRegle := TFont.Create;
       FPoliceLegende := TFont.Create;
       FPoliceTitre.Color:=clWhite;
       FCouleurRegle:=clWhite;
       FPoliceRegle.Color:=clWhite;
       FPoliceLegende.Color:=clWhite;
       FCouleurCourbe_1:=clRed;
       FCouleurCourbe_2:=clWhite;
       FCouleurCourbe_3:=clAqua;
       FCouleurCourbe_4:=clYellow;
       FCouleurCourbe_5:=clFuchsia;
       FCouleurCourbe_6:=clBlue;
       FTraceCourbe:=False;
       For I:=1 To 6 Do Legende[I]:='';
       Max.X:=1;
       Max.Y:=1;
       FTypeEchelle:=[Automatique];
       FSeries:=10;
       FNetoyer:=False;
    End;
    {-----------------------------------------------------------------------------}
    Destructor TGraphique.Destroy;
    Begin
       FPen.Free;
       FBrush.Free;
       FPoliceTitre.Free;
       FPoliceRegle.Free;
       FPoliceLegende.Free;
       TabCourbe[1]:=Nil;
       TabCourbe[2]:=Nil;
       TabCourbe[3]:=Nil;
       TabCourbe[4]:=Nil;
       TabCourbe[5]:=Nil;
       TabCourbe[6]:=Nil;
       inherited Destroy;
    End;
    {-----------------------------------------------------------------------------}
    Procedure Tgraphique.SetShape(Value : TGraphiqueType);
    Begin
       If FShape <> Value Then
        begin
           FShape:=Value;
           Invalidate;
        end;
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGraphique.SetPen(Value : TPen);
    Begin
       FPen.Assign(Value);
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGraphique.SetBrush(Value : TBrush);
    Begin
       FBrush.Assign(Value);
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGRaphique.StyleChanged(Sender : TObject);
    Begin
       Invalidate;
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGRaphique.SetGrille(Value : Boolean);
    Begin
       FGrille:=Value;
       Invalidate;
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGRaphique.SetStyleGrille(Value : TStyleGrille);
    Begin
       FStyleGrille:=Value;
       Invalidate;
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGRaphique.SetColorGrid(Value : TColor);
    Begin
       FColorGrid:=Value;
       Invalidate;
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGRaphique.SetPasGrid(Value : Integer);
    Begin
       FPasGrid:=Value;
       Invalidate;
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGRaphique.SetLigneGrille(Value : TStyleLigneGrille);
    Begin
       FStyleLigneGrille:=Value;
       Invalidate;
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGRaphique.SetZoneLegende(Value : Integer);
    Begin
       If Value < 0 Then FZoneLegende:=0
       Else
       If Value > (Height Div 2) Then FZoneLegende:=(Height Div 2)
       Else
         FZoneLegende:=Value;
       Invalidate;
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGRaphique.SetTitre(Value : String);
    Begin
       FTitre:=Value;
       Invalidate;
    end;
    {-----------------------------------------------------------------------------}
    Procedure TGraphique.SetPoliceTitre(Value : TFont);
    Begin
       FPoliceTitre.Assign(Value);
       Invalidate;
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGraphique.SetPoliceRegle(Value : TFont);
    Begin
       FPoliceTitre.Assign(Value);
       Invalidate;
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGraphique.SetPoliceLegende(Value : TFont);
    Begin
       FPoliceTitre.Assign(Value);
       Invalidate;
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGraphique.SetRegle(Value : Boolean);
    Begin
       FRegle:=Value;
       Invalidate;
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGraphique.SetCouleurRegle(Value : TColor);
    Begin
       FCouleurRegle:=Value;
       Invalidate;
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGraphique.SetStyleCourbe(Value : TStyleCourbe);
    Begin
       FStyleCourbe:=Value;
       Invalidate;
    end;
    {-----------------------------------------------------------------------------}
    Procedure TGraphique.Paint;
    Var
       D,X,Y,W,H,S,HT,PT,RV,RH : Integer;
       Absisse,Ordonnee        : String;
       PasXLegende,PasYLegende,
       I,J,T,BC,
       TAb,TOr,O,XL,YL,XA,YA : Integer;
       TXY                   : TPoint;
       RX,RY,RXA,RYA,RA,RB,
       LX,LY                 : Double;

    Begin
       With Canvas Do
        begin
           RH:=0;
           RV:=0;
           Pen:=FPen;
           Brush:=FBrush;
           W:=Width;
           // Calculer la taille de la police pour le titre.
           If FTitre <> '' Then PT:=FPoliceTitre.Height
           Else PT:=0;
           If PT < 0 Then HT := -PT
           Else HT:=PT;
           // Tenir compte de la zone des légendes.
           H:=Height - FZoneLegende;
           If W < H Then S:=W
           Else S:=H;
           // Tracer le cadre.
           Case FShape Of
           sgtRectangle:Rectangle(0,0,Width,height);
           sgtBoundRec:RoundRect(0,0,Width,height,14,14);
           End;
           // Tracer la ligne qui sépare la zone des légendes.
           If FZoneLegende > 0 Then
            begin
               MoveTo(0,H + 1);
               LineTo(W,H + 1);
            end;

           // Calculer les valeurs max si EchelleAutomatique.
           If Automatique In FTypeEchelle Then
            begin
               Max.X:=0;
               Max.Y:=0;
               For J:=1 To 6 Do
                begin
                   If Tracer[J] Then
                    begin
                       Case J Of
                       1:begin
                            For I:=0 To High(Tabcourbe[1]) Do
                             begin
                                If Tabcourbe[1][I].X > Max.X Then
                                  Max.X:=Tabcourbe[1][I].X;
                                If Tabcourbe[1][I].Y > Max.Y Then
                                  Max.Y:=Tabcourbe[1][I].Y;
                             end;
                         end;
                       2:begin
                            For I:=0 To High(Tabcourbe[2]) Do
                             begin
                                If Tabcourbe[2][I].X > Max.X Then
                                  Max.X:=Tabcourbe[2][I].X;
                                If Tabcourbe[2][I].Y > Max.Y Then
                                  Max.Y:=Tabcourbe[2][I].Y;
                             end;
                         end;
                       3:begin
                            For I:=0 To High(Tabcourbe[3]) Do
                             begin
                                If Tabcourbe[3][I].X > Max.X Then
                                  Max.X:=Tabcourbe[3][I].X;
                                If Tabcourbe[3][I].Y > Max.Y Then
                                  Max.Y:=Tabcourbe[3][I].Y;
                             end;
                         end;
                        4:begin
                            For I:=0 To High(Tabcourbe[4]) Do
                             begin
                                If Tabcourbe[4][I].X > Max.X Then
                                  Max.X:=Tabcourbe[4][I].X;
                                If Tabcourbe[4][I].Y > Max.Y Then
                                  Max.Y:=Tabcourbe[4][I].Y;
                             end;
                         end;
                        5:begin
                            For I:=0 To High(Tabcourbe[5]) Do
                             begin
                                If Tabcourbe[5][I].X > Max.X Then
                                  Max.X:=Tabcourbe[5][I].X;
                                If Tabcourbe[5][I].Y > Max.Y Then
                                  Max.Y:=Tabcourbe[5][I].Y;
                             end;
                         end;
                        6:begin
                            For I:=0 To High(Tabcourbe[6]) Do
                             begin
                                If Tabcourbe[6][I].X > Max.X Then
                                  Max.X:=Tabcourbe[6][I].X;
                                If Tabcourbe[6][I].Y > Max.Y Then
                                  Max.Y:=Tabcourbe[6][I].Y;
                             end;
                         end;
                       End;
                    end;
                end;
            end
           Else
            begin

            end;

           // Calculer le point de depar des courbes.
           If FRegle Then
            begin
               RV:=40;
               RH:=23;
            end;
           FXZero := RV;
           FYZero := H  - RH;

           // Calculer le coéficient d'amplification.
           LX:=(Width - 20) - FXZero;
           LY:=Height - (Height - FYZero);
           BC:=0;
           If FStyleCourbe = sgcBarres Then
            begin
               For T:=1 To 6 Do
                If Tracer[T] Then Inc(BC,8);
               LX:=LX - BC;
            end;

           DX:=Max.X;
           If DX = 0 Then DX:=1;
           If LX = 0 Then LX:=1;
           DX:=(LX / DX)-0.2;

           DY:=Max.Y;
           If DY = 0 Then DY:=1;
           If LY = 0 Then LY:=1;
           DY:=(LY / DY)-0.2;



           // Dessiner les regles.
           If FRegle Then
            begin
               Font:=FPoliceLegende;

               Pen.Color:=FCouleurRegle;
               // Tracer la regle des absisses.
               MoveTo(RV,HT + FPasGrid);
               LineTo(RV,H - RH);
               //Y :=((H - FPasGrid) - RH);
               Y:=H - RH;
               TAb:=0;
               Repeat
                   RA:=FYZero - Y;
                   If FEchelleDecimale Then Str((RA / DY):1:1,Absisse)
                   Else Absisse:=IntToStr(Round(RA / DY));
                   TextOut(3,Y  - 5,Absisse);
                   Inc(TAb);

                   MoveTo(RV - 4,Y);
                   LineTo(RV - 1, Y);
                   Dec(Y,FPasGrid);
               Until (Y <=FPasGrid + HT + 5);

               // Tracer la regle des ordonnées.
               MoveTo(RV,H - RH);
               LineTo(W,H - RH);
               //X:=FPasGrid + RV;
               X:=FXZero;
               TOr:=0;  O:=1;
               Repeat
                   Inc(O);
                   If O = 3 Then
                    begin
                       O := 1;
                       RB:=X - FXZero;
                       If FEchelleDecimale Then Str((RB / DX):1:1,Ordonnee)
                       Else Ordonnee:=IntToStr(Round(RB / DX));
                       TextOut(X - 5,H - (RH - 5),Ordonnee);
                    end;
                   Inc(TOr);

                   MoveTo(X,H - (RH - 1));
                   LineTo(X,H - (RH - 4));
                   Inc(X,FPasGrid);
               Until (X >=(W - FPasGrid));

            end;
           // Dessiner la grille.
           If Fgrille Then
            begin
               Pen.Color:=FColorGrid;
               Pen.Style:=psSolid;

               If FStyleGrille <> sgtPoints Then
                begin
                   Case FStyleLigneGrille Of
                   sgtContinue:Pen.Style:=psSolid;
                   sgtAlterne_1:Pen.Style:=psDash;
                   sgtAlterne_2:Pen.Style:=psDashDot;
                   End;
                end;

               Case FStyleGrille Of
               sgtPoints:begin
                            X:=FPasGrid + RV;
                            Repeat
                               //Y:=FPasGrid + HT;
                               Y :=(H - FPasGrid - RH);
                               Repeat
                                  MoveTo(X,Y);
                                  LineTo(X  + 1, Y + 1);
                                  //Inc(Y,FPasGrid);
                               //Until (Y >=(H - FPasGrid));
                                  Dec(Y,FPasGrid);
                               Until (Y <=FPasGrid + HT + 5);
                              Inc(X,FPasGrid);
                            Until (X >=(W - FPasGrid));
                         end;
               sgtVertLignes,
               sgtHorzLignes,
               sgtMixteLignes:begin
                            X:=FPasGrid + RV;
                            Y :=(H - RH);
                            If (FStyleGrille = sgtVertLignes) Or
                               (FStyleGrille = sgtMixteLignes) Then
                            // Tracer les lignes verticales.
                            Repeat
                               MoveTo(X,Y);
                               LineTo(X,RV);
                               Inc(X,FPasGrid);
                            Until (X >=(W - FPasGrid));
                            If (FStyleGrille = sgtHorzLignes) Or
                               (FStyleGrille = sgtMixteLignes) Then
                            // Tracer les lignes horizontales.
                            If Y < (H - RH) Then
                            Repeat
                                MoveTo(RV + 1,Y);
                                LineTo(W - 4, Y);
                                Dec(Y,FPasGrid);
                            Until (Y <=FPasGrid + HT + 5);
                         end;
               End;
            end;
         
     
  4. programmeur

    programmeur كبار الشخصيات

    إنضم إلينا في:
    ‏21 ماي 2006
    المشاركات:
    2.831
    الإعجابات المتلقاة:
    330
      27-04-2007 23:54
    كود (text):


      // Ecrire le titre du graphe.
           If FTitre <> '' Then
            begin
               Font:=FPoliceTitre;
               D:=(W Div 2) - (((HT - 5)* Length(FTitre)) Div 2);
               If D < 4 Then D:=4;
               TextOut(D,5,FTitre);
            end;

           If Not FNetoyer Then
           begin
           // Tracer le graphique.
           XL:=10;
           YL:=H + 10;
           PasXLegende:=Width Div 3;
           PasYLegende:=FZoneLegende Div 2;
           BC:=0;
           For T:=1 To 6 Do
           begin
           If Tracer[T] Then
            begin

               Case T Of
               1:begin
                    Pen.Color:=FCouleurCourbe_1;
                    Brush.Color:=FCouleurCourbe_1;
                 end;
               2:begin
                    Pen.Color:=FCouleurCourbe_2;
                    Brush.Color:=FCouleurCourbe_2;
                 end;
               3:begin
                    Pen.Color:=FCouleurCourbe_3;
                    Brush.Color:=FCouleurCourbe_3;
                 end;
               4:begin
                    Pen.Color:=FCouleurCourbe_4;
                    Brush.Color:=FCouleurCourbe_4;
                 end;
               5:begin
                    Pen.Color:=FCouleurCourbe_5;
                    Brush.Color:=FCouleurCourbe_5;
                 end;
               6:begin
                    Pen.Color:=FCouleurCourbe_6;
                    Brush.Color:=FCouleurCourbe_6;
                 end;
               End;

               Pen.Style:=psSolid;
               If FZoneLegende > 0 Then
                begin
                   Rectangle(XL,YL,XL + 5,YL + 10);
                   Pen.Color:=FCouleurRegle;
                   Brush.Color:=Fond.Color;
                   TextOut(XL + 7,YL,Legende[T]);
                   Inc(XL,PasXLegende);
                   If XL > ((PasXLegende * 2) + 10) Then
                    begin
                       XL:=10;
                       Inc(YL,PasYLegende);
                    end;
                end;

               Case T Of
               1:begin
                    Pen.Color:=FCouleurCourbe_1;
                    Brush.Color:=FCouleurCourbe_1;
                 end;
               2:begin
                    Pen.Color:=FCouleurCourbe_2;
                    Brush.Color:=FCouleurCourbe_2;
                 end;
               3:begin
                    Pen.Color:=FCouleurCourbe_3;
                    Brush.Color:=FCouleurCourbe_3;
                 end;
               4:begin
                    Pen.Color:=FCouleurCourbe_4;
                    Brush.Color:=FCouleurCourbe_4;
                 end;
               5:begin
                    Pen.Color:=FCouleurCourbe_5;
                    Brush.Color:=FCouleurCourbe_5;
                 end;
               6:begin
                    Pen.Color:=FCouleurCourbe_6;
                    Brush.Color:=FCouleurCourbe_6;
                 end;
               End;


               Pen.Width:=1;

               If (FStyleCourbe = sgcPointilles) Then
                begin
                   Pen.Style:=psDot;
                   Brush.Style:=bsClear;
                end
               Else Brush.Style:=bsSolid;



               For I:=0 To (Series - 1) Do
                begin
                   TXY.X:=TabCourbe[T][I].X;
                   TXY.Y:=TabCourbe[T][I].Y;

                   RX:=TXY.X;
                   RY:=TXY.Y;
                   X:=FXZero + Round(RX * DX);
                   Y:=FYZero - Round(RY * DY);
                   If (FStyleCourbe = sgcLignes) Or
                      (FStyleCourbe = sgcPointilles) Then
                    begin
                       If I > 0 Then
                        begin
                           TXY.X:=TabCourbe[T][I-1].X;
                           TXY.Y:=TabCourbe[T][I-1].Y;

                           RXA:=TXY.X;
                           RYA:=TXY.Y;
                           XA:=FXZero + Round(RXA * DX);
                           YA:=FYZero - Round(RYA * DY);
                        end
                       Else
                        begin
                           XA:=X;
                           YA:=Y;
                        end;
                    end;

                   MoveTo(X,Y);
                   If FStyleCourbe = sgcPoints Then Ellipse(X - 2,Y - 2,X + 2,Y + 2);
                   If (FStyleCourbe = sgcLignes) Or
                      (FStyleCourbe = sgcPointilles) Then
                      If I > 0 Then LineTo(XA,YA);
                   If FStyleCourbe = sgcBarres Then
                     Rectangle((X - 4) + BC,Y,(X + 4) + BC,FYZero);
                end;
            end;
            If FStyleCourbe = sgcBarres Then Inc(BC,8);
           end;
           end;
        end;
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGraphique.MouseMove(Shift : TShiftState;X,Y : Integer);
    Var
       XO,YO : Integer;
       RX,RY : Double;

    Begin
       If (X > FXZero) And (Y < FYZero) Then XO:=X - FXZero
       Else XO:=0;
       If (Y < FYZero) And (X > FXZero) Then YO:=FYZero - Y
       Else YO:=0;
       RX:=XO;  RY:=YO;
       If (RX > 0) And (DX >0) Then
        begin
           RX:=RX / DX;
           RY:=RY / DY;
           X:=Round(RX);
           Y:=Round(RY);
        end
       Else
        begin
           X:=0;
           Y:=0;
        end;

       inherited MouseMove(Shift,X,Y);
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGraphique.TraceCourbe(Value : Array Of Integer);
    Var
       I,C  : Integer;

    Begin
       For I:=1 To 6 Do Tracer[I]:=False;
       For I:=0 To High(Value) Do
        begin
           If High(Value) > (FSeries -1) Then Break;
           If I > 5 Then Break;
           C:=Value[I];
           Tracer[C]:=True;
        end;
       Invalidate;
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGraphique.Clear;
    Begin
       FNetoyer:=True;
       Invalidate;
       FNetoyer:=False;
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGraphique.DefinitCourbe(Courbe,N : Integer;Point : TPoint);
    Begin
       If N > (FSeries - 1) Then Exit;
       SetLength(TabCourbe[Courbe],FSeries);
       TabCourbe[Courbe][N].X:=Point.X;
       TabCourbe[Courbe][N].Y:=Point.Y;
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGraphique.SetSeries(Value : Integer);
    Var
       P   : TPoint;
       I,J : Integer;

    Begin
       P.X:=0; P.Y:=0;
       For J:=1 To 6 Do
         For I:=0 To Value -1 Do
          DefinitCourbe(J,I,P);
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGraphique.SetTypeEchelle(Value : TEchelle);
    Begin
       FTypeEchelle:=Value;
    End;
    {-----------------------------------------------------------------------------}
    Procedure TGraphique.SetLegende(L : Integer;T : String);
    Begin
       FLegende[L]:=T;
    End;
    {-----------------------------------------------------------------------------}
    Function TGraphique.GetLegende(L : Integer) : String;
    Begin
       Result:=FLegende[L];
    End;
    {-----------------------------------------------------------------------------}
    procedure Register;
    begin
      RegisterComponents('Système', [TGraphique]);
    end;
    {-----------------------------------------------------------------------------}
    end.

     
    de toute facons ca c un exemple fait par un ami mais moi majarbtouch car g sui pas interresser

    aller enchalah enkoun jawebtek mais g le pense pas enchalah un autre amis te repondra

    votre ami ALOULOU ou HATIMOS et la pour vous​
     
  5. anas sellami

    anas sellami عضو نشيط

    إنضم إلينا في:
    ‏4 فيفري 2007
    المشاركات:
    299
    الإعجابات المتلقاة:
    132
      28-04-2007 00:11
    باهي أما آنا أول مرة نشوف حاجة في الباسكال كيما هاكا...
     
  6. programmeur

    programmeur كبار الشخصيات

    إنضم إلينا في:
    ‏21 ماي 2006
    المشاركات:
    2.831
    الإعجابات المتلقاة:
    330
      28-04-2007 00:44
    mella hak chofet mais enti mezelet machofet chay zeda
     
  7. montassar

    montassar عضو نشيط

    إنضم إلينا في:
    ‏19 نوفمبر 2005
    المشاركات:
    121
    الإعجابات المتلقاة:
    42
      28-04-2007 16:43
    c en turbo pascal ou en pascal 7? merci mes ami, mais je crois que que ça ne marche pas
     
  8. scorshy

    scorshy عضو

    إنضم إلينا في:
    ‏6 جانفي 2007
    المشاركات:
    88
    الإعجابات المتلقاة:
    9
      28-04-2007 21:50
    Les amis vraiment j'ai rien comprit !! ki peut nous aider par des exemple
     
  9. sof2004

    sof2004 عضو فعال

    إنضم إلينا في:
    ‏10 نوفمبر 2006
    المشاركات:
    346
    الإعجابات المتلقاة:
    157
      14-07-2007 00:27
    à ma connaissance, la graphique en Turbo pascal ne marche pas pour la nouvelle génération de processeur problème de division par zéro dans la bibliothèque ( Uses CRT ). J'ai trop cherché presque dans tous les forums mais pas de solution fiable.:crying:
     
  10. scorpio&KIRA

    scorpio&KIRA عضو جديد

    إنضم إلينا في:
    ‏16 جويلية 2007
    المشاركات:
    37
    الإعجابات المتلقاة:
    0
      21-07-2007 00:21
    c interessant le graph en pascal on peu ensemble trouver une solution !!
     
جاري تحميل الصفحة...
مواضيع مشابهة التاريخ
nouveau EDI pascal TechnoPascal ‏7 نوفمبر 2016
حالة الموضوع:
مغلق

مشاركة هذه الصفحة

جاري تحميل الصفحة...