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

C++Builder Discussion :

Migration TChart de Rad2010 vers Sydney10.4: zoom incorrect!


Sujet :

C++Builder

  1. #1
    Membre �clair�
    Homme Profil pro
    Chercheur g�nie �lectrique
    Inscrit en
    Mai 2002
    Messages
    263
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Chercheur g�nie �lectrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par d�faut Migration TChart de Rad2010 vers Sydney10.4: zoom incorrect!
    Bonjour,
    J�ai migr� une application C++Builder Rad2010 vers Sydney10.4, tous marchent � peu pr�s sauf le zoom de TChart n�est pas correct sous Sydney10.4.
    Voici la copie �cran pour une simple affichage des trois BarGraph via TChart.
    Nom : _0000000Chart.jpg
Affichages : 140
Taille : 426,3 Ko

    Voici les codes :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	// Test Chart
    	for(int ii=0; ii<100; ++ii)
    	{
    		Chart1->Series[0]->AddXY(ii, sin(2*3.1415926*ii/1000.), "", clTeeColor);
    		Chart1->Series[1]->AddXY(ii, sin(2*3.1415926*ii/1000.-M_PI*2/3.), "", clTeeColor);
    		Chart1->Series[2]->AddXY(ii, sin(2*3.1415926*ii/1000.-M_PI*4/3.), "", clTeeColor);
    	}
    Le probl�me : quand on zoom les bars, les largeurs ainsi que les d�calages des trois se changent correctement sous Rad2010, on voit bien les 3 apr�s le zoom.
    Mais quand compil� sous Sydney10.4, les largeurs ainsi que les d�calages des trois ne changent pas lors de zoom, on voit les 3 bars superpos� et on ne peut pas distinguer les 3.
    J'ai r�ussi de d�caler par programme, mais les largeurs sont toujour identique, elle n'augmente pas lors zoom (comme dans Rad2010).
    Merci par avance
    Cordialement
    Xavier

  2. #2
    Membre �clair�
    Homme Profil pro
    Chercheur g�nie �lectrique
    Inscrit en
    Mai 2002
    Messages
    263
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Chercheur g�nie �lectrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par d�faut
    Je ne sais pas quelle option doit �tre croch�e dans le TChart

  3. #3
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Responsable de compte
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par d�faut
    Salut.
    peux tu poste le .h ou hpp de la fonction ->AddXY
    par ailleurs
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    Chart1->Series[0]->AddXY(ii, sin(2*3.1415926*ii/1000.), "", clTeeColor);
    pourquoi le . apr�s la valeur

    la fonction sin est elle cod�e de mani�re similaire sous Sydney10.4 ?
    essaie avec la version se trouvant dans la std

    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
     
    #include <iostream>
    #include <cmath>
    #include <cerrno>
    #include <cfenv>
     
    #pragma STDC FENV_ACCESS ON
    const double pi = std::acos(-1);
    int main()
    {
        // typical usage
        std::cout << "sin(pi/6) = " << std::sin(pi/6) << '\n'
                  << "sin(pi/2) = " << std::sin(pi/2) << '\n'
                  << "sin(-3*pi/4) = " << std::sin(-3*pi/4) << '\n';
        // special values
        std::cout << "sin(+0) = " << std::sin(0.0) << '\n'
                  << "sin(-0) = " << std::sin(-0.0) << '\n';
        // error handling 
        std::feclearexcept(FE_ALL_EXCEPT);
        std::cout << "sin(INFINITY) = " << std::sin(INFINITY) << '\n';
        if (std::fetestexcept(FE_INVALID))
            std::cout << "    FE_INVALID raised\n";
    }
    et enfin
    pour analyser les diff�rences
    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
     
    int ValA;
    int ValB;
    int ValC;
    int IFileHandle1= FileCreate(L"tab1.txt");
    int IFileHandle2= FileCreate(L"tab2.txt");// Creation des Handle de fichiers
    int IFileHandle3= FileCreate(L"tab3.txt");
    for(int ii=0; ii<100; ++ii)
     
    	{
    		ValA= sin(2*3.1415926*ii/1000.), "", clTeeColor);
                    FileWrite(IFileHandle1, &ValA sizeof(ValA));
    		ValB= sin(2*3.1415926*ii/1000.-M_PI*2/3.), "", clTeeColor);
                    FileWrite(IFileHandle2, &ValB sizeof(ValB));
    		ValC= sin(2*3.1415926*ii/1000.-M_PI*4/3.), "", clTeeColor);
                    FileWrite(IFileHandle3, &ValC sizeof(ValC));
    	}
    FileClose(IFileHandle1);// fermeture des Handle
    FileClose(IFileHandle2);
    FileClose(IFileHandle3);
    // Il ne reste plus qu'a analyser et comparer les résultats avec Excel par exemple
    // et voir ou se situe les différences entre les versions de C++Builder
    cdlt
    vous trouverez mes tutoriels � l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les r�gles du forum

  4. #4
    Membre �clair�
    Homme Profil pro
    Chercheur g�nie �lectrique
    Inscrit en
    Mai 2002
    Messages
    263
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Chercheur g�nie �lectrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par d�faut
    Merci de ton investigation.
    En effet, j'ai mis trois lignes simples pour tracer 3 spectres diff�rents � la place de sin:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	// Test Chart
    	for(int ii=0; ii<100; ++ii)
    	{
    		Chart1->Series[0]->AddXY(ii, ii, "", clTeeColor);
    		Chart1->Series[1]->AddXY(ii, 10+ii, "", clTeeColor);
    		Chart1->Series[2]->AddXY(ii, 20+ii, "", clTeeColor);
    	}
    Les effets sont les m�mes: sous Sydney, tous les trois bars sont superpos�s quand zoom�!
    Voir les images:
    Nom : Chart compare.jpg
Affichages : 100
Taille : 403,6 Ko

    J'ai l'impression que ce ph�nom�ne apparait dans le mode BarGraph: quand zoom�, les bars ne se d�calenet pas (sous Rad2010, c'est automatiquement OK).
    Cordialement
    Xavier

  5. #5
    Membre �clair�
    Homme Profil pro
    Chercheur g�nie �lectrique
    Inscrit en
    Mai 2002
    Messages
    263
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Chercheur g�nie �lectrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par d�faut
    J'ai oubli� les .h

    Rad2010:
    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
    //---------------------------------------------------------------------------
     
    #ifndef Unit1H
    #define Unit1H
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <ExtCtrls.hpp>
    #include <StdCtrls.hpp>
    #include "Chart.hpp"
    #include "Series.hpp"
    #include "TeEngine.hpp"
    #include "TeeProcs.hpp"
    //---------------------------------------------------------------------------
     
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published:	// IDE-managed Components
    	TChart *Chart1;
    	TBarSeries *Series1;
    	TBarSeries *Series2;
    	TBarSeries *Series3;
    	TBarSeries *Series4;
    	TBarSeries *Series5;
    	TBarSeries *Series6;
    	TBarSeries *Series7;
    	TBarSeries *Series8;
    	TBarSeries *Series9;
    	TBarSeries *Series10;
    	TBarSeries *Series11;
    	TBarSeries *Series12;
    	TBarSeries *Series13;
    	TBarSeries *Series14;
    	TBarSeries *Series15;
    	TBarSeries *Series16;
    	TBarSeries *Series17;
    	TBarSeries *Series18;
    	TBarSeries *Series19;
    	TBarSeries *Series20;
     
    private:	// User declarations
    public:		// User declarations
    	__fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    Sydney10.4:
    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
    //---------------------------------------------------------------------------
     
    #ifndef Unit1H
    #define Unit1H
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <ExtCtrls.hpp>
    #include <StdCtrls.hpp>
    #include <VCLTee.Chart.hpp>
    #include <VCLTee.Series.hpp>
    #include <VclTee.TeeGDIPlus.hpp>
    #include <VCLTee.TeEngine.hpp>
    #include <VCLTee.TeeProcs.hpp>
     
    //---------------------------------------------------------------------------
     
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published:	// IDE-managed Components
    	TChart *Chart1;
    	TBarSeries *Series1;
    	TBarSeries *Series2;
    	TBarSeries *Series3;
    	TBarSeries *Series4;
    	TBarSeries *Series5;
    	TBarSeries *Series6;
    	TBarSeries *Series7;
    	TBarSeries *Series8;
    	TBarSeries *Series9;
    	TBarSeries *Series10;
    	TBarSeries *Series11;
    	TBarSeries *Series12;
    	TBarSeries *Series13;
    	TBarSeries *Series14;
    	TBarSeries *Series15;
    	TBarSeries *Series16;
    	TBarSeries *Series17;
    	TBarSeries *Series18;
    	TBarSeries *Series19;
    	TBarSeries *Series20;
     
    private:	// User declarations
    public:		// User declarations
    	__fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif

  6. #6
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Responsable de compte
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par d�faut
    salut
    pas certain essaye le code que j'ai post� et analyse les 3 fichiers sous Excel pour les 2 plateformes
    tu verras tout de suite si il y a une diff�rence

    par ailleurs la version de Thart a vraisemblablement �volu� depuis 2010 !
    v�rifie si tu ne dispose pas d'une mise a jour

    cdlt
    vous trouverez mes tutoriels � l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les r�gles du forum

  7. #7
    Membre �clair�
    Homme Profil pro
    Chercheur g�nie �lectrique
    Inscrit en
    Mai 2002
    Messages
    263
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Chercheur g�nie �lectrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par d�faut
    Salut,
    peut-�tre j'ai mal exprim� mon probl�me.
    Il s'agit d'un test de chart des deux versions C++Builder: toutes les valeurs sont correctement trac�es et bars superpos�es dans les deux cas.
    Quand on zoom dans le cas Sydney10.4, les bars sont toujours superpos�s.
    Si on complie avec Rad2010, les bars ne sont pas superpos�s lors de zoom: cela permet de visualiser correctement sans besoin de modifier les codes.

    J'ai essay� ton code (d�sol�, je ne comprends pas comment le faire):
    j'ai copi� dans mon projet de test C++Builder2010 existant, il ne reconnait pas #include <cfenv>
    Merci d'avance
    Xavier

  8. #8
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Responsable de compte
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par d�faut
    salut
    tu cr�e simplement un nouveau projet et tu execute ce 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    void test()
    {
    int ValA;
    int ValB;
    int ValC;
    int IFileHandle1= FileCreate(L"tab1.txt");
    int IFileHandle2= FileCreate(L"tab2.txt");// Creation des Handle de fichiers
    int IFileHandle3= FileCreate(L"tab3.txt");
    for(int ii=0; ii<100; ++ii)
     
    	{
    		ValA= sin(2*3.1415926*ii/1000.), "", clTeeColor);
                    FileWrite(IFileHandle1, &ValA sizeof(ValA));
    		ValB= sin(2*3.1415926*ii/1000.-M_PI*2/3.), "", clTeeColor);
                    FileWrite(IFileHandle2, &ValB sizeof(ValB));
    		ValC= sin(2*3.1415926*ii/1000.-M_PI*4/3.), "", clTeeColor);
                    FileWrite(IFileHandle3, &ValC sizeof(ValC));
    	}
    FileClose(IFileHandle1);// fermeture des Handle
    FileClose(IFileHandle2);
    FileClose(IFileHandle3);
    // Il ne reste plus qu'a analyser et comparer les résultats avec Excel par exemple
    // et voir ou se situe les différences entre les versions de C++Builder
     
    }
    ensuite tu appelle simplement la proc�dure test par exemple dans le constructeur de ta Form
    vous trouverez mes tutoriels � l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les r�gles du forum

  9. #9
    Membre �clair�
    Homme Profil pro
    Chercheur g�nie �lectrique
    Inscrit en
    Mai 2002
    Messages
    263
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Chercheur g�nie �lectrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par d�faut
    J'ai copi� dans ma form, une erreur de compilation: "Statment missing"

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    		ValA= sin(2*3.1415926*ii/1000.), "", clTeeColor);

  10. #10
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Responsable de compte
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par d�faut
    Salut
    effectivement une petite erreur s'est gliss�e
    code correct
    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
     
    void Test()
     {
     
    	const double pi = 3.1415926;
     
    	float        ValA;
    	float        ValB;
    	float        ValC;
    	AnsiString Ab;
    	int IFileHandle1= FileCreate(L"ValA.txt");
    	int IFileHandle2= FileCreate(L"ValB.txt");// Creation des Handle de fichiers
    	int IFileHandle3= FileCreate(L"ValC.txt");
    	for(int ii=0; ii<100; ++ii)
    	   {
    			ValA= Sin(2*pi*ii/1000);
    			Ab=FloatToStr(ValA)+AnsiString("\r\n");
    			FileWrite(IFileHandle1, Ab.c_str(), Ab.Length());
    			ValB= Sin(2*pi*ii/1000-M_PI*2/3);
    			Ab=FloatToStr(ValB)+AnsiString("\r\n");
    			FileWrite(IFileHandle2, Ab.c_str(), Ab.Length());
    			ValC= Sin(2*pi*ii/1000-M_PI*4/3);
    			Ab=FloatToStr(ValC)+AnsiString("\r\n");
    			FileWrite(IFileHandle3, Ab.c_str(), Ab.Length());
    	   }
    	FileClose(IFileHandle1);// fermeture des Handle
    	FileClose(IFileHandle2);
    	FileClose(IFileHandle3);
    	// Il ne reste plus qu'a analyser et comparer les résultats avec Excel par exemple
    	// et voir ou se situe les différences entre les versions de C++Builder
    };
    il ne reste a ajoter dans le .h
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    void Test();// avant la déclartion de la Form
    et pour l�ppel
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    {
      Test(); // dans le constructeur de la Form
     
    }
    R�sultat sous Excel

    Conclusion les fichiers sont identiques
    il doit exister des diff�rences entre la version TChart d3 2010 et 10.4

    cdlt
    Fichiers attach�s Fichiers attach�s
    vous trouverez mes tutoriels � l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les r�gles du forum

  11. #11
    Membre �clair�
    Homme Profil pro
    Chercheur g�nie �lectrique
    Inscrit en
    Mai 2002
    Messages
    263
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Chercheur g�nie �lectrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par d�faut
    Merci de tes codes pour enregistrer des donn�es sur un fichier!
    En effet, j'ai utilis� depuis des ann�e les fonctions sous Memo pour enregistrer des donn�es sur disque.
    Quand le volume de donn�es est important, la fonction SaveToFile de Memo prend trop de temps: g�nant si je faire des mesures en temps r�el.
    Avec tes codes, �� beaucoup plus vite!

    Pour le probl�me d'affichage TChart (BarGraph), je continue � faire des investigations.
    Cordialement
    Xavier

  12. #12
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Responsable de compte
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par d�faut
    Salut
    En fait c�est 3 fichiers un par s�rie
    Je te conseille de prendre contact avec Streema l��diteur de Tchart pour lui demander conseil
    Peut-�tre un nouveau param�tre
    Cordialement
    vous trouverez mes tutoriels � l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les r�gles du forum

Discussions similaires

  1. R�ponses: 26
    Dernier message: 12/11/2008, 17h59
  2. migration de base access vers postgres
    Par greg_ggl dans le forum PostgreSQL
    R�ponses: 3
    Dernier message: 09/03/2006, 10h33
  3. [PostGre] Migration de Oracle 8i vers PostGre ?
    Par delphim dans le forum Autres SGBD
    R�ponses: 2
    Dernier message: 21/04/2004, 17h04
  4. [Migrat+doc] de Netbeans vers Eclipse d'une applic existante
    Par vempiria dans le forum Eclipse Java
    R�ponses: 4
    Dernier message: 13/04/2004, 08h23
  5. Migration 7.3.4 vers 9.2
    Par childeric dans le forum Administration
    R�ponses: 8
    Dernier message: 12/03/2004, 09h45

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