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 :

Probleme de traduction Delphi vers BCB de Odd


Sujet :

C++Builder

  1. #1
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut Probleme de traduction Delphi vers BCB de Odd
    Bonjour j'ai un petit soucis pour traduire un code Delphi, il y a une fonction que je n'arrive pas a traduire " Odd "
    Voici le 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
    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
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
          int ARow, TRect &Rect, TGridDrawState State)
    {
    // sélection de la couleur de fond
    if(State.Contains(gdFixed))
    {
    StringGrid1->Canvas->Brush->Color = clBtnFace;
    }
    else if(State.Contains(gdSelected))
    {
    StringGrid1->Canvas->Brush->Color = clNavy;
    }
    else if(Odd(ARow)) <----- ici il y a une erreur
    {
    StringGrid1->Canvas->Brush->Color = TColor(0xFFE0FF);
    }
    else
    {
    StringGrid1->Canvas->Brush->Color = TColor(0xFFFFE0);
    }
    // Dessin du fond
    StringGrid1->Canvas->FillRect(Rect);
    // Sélection de la couleur de texte
        if(State.Contains(gdSelected))
        {
         StringGrid1->Font->Color = clWhite;
        }
        else
        {
         StringGrid1->Font->Color = clBlack;
        }
    // Dessin du texte
    // soit
     StringGrid1->Canvas->TextOut(Rect.Left, Rect.Top, StringGrid1->Cells[ACol][ARow]);
    // soit
    // StringGrid1->Canvas->TextOut(Rect.Left, Rect.Top, (StringGrid1->Cells[ACol][ARow]).c_str());
    }
    //---------------------------------------------------------------------------
    le lien dans la FAQ Delphi

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    La fonction Odd renvoie true si le nombre est impair, false si il est pair.

    Ca ne marche pas en remplaçant simplement :

    par :

    ?

    .

  3. #3
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Merci pour ta reponse sat83
    Ca a l'air de fonctionner
    Voici le code qui permet d'avoir des lignes de couleur
    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
     
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
          int ARow, TRect &Rect, TGridDrawState State)
    {
    // Comment avoir des lignes de couleur sur un TStringGrid
    // sélection de la couleur de fond
    if(State.Contains(gdFixed))
    {
    StringGrid1->Canvas->Brush->Color = clBtnFace;
    }
    else if(State.Contains(gdSelected))
    {
    StringGrid1->Canvas->Brush->Color = clNavy;
    }
    else if(ARow%2)       //Delphi -> (Odd(ARow))
    {
    StringGrid1->Canvas->Brush->Color = TColor(0xFFE0FF);
    }
    else
    {
    StringGrid1->Canvas->Brush->Color = TColor(0xFFFFE0);
    }
    // Dessin du fond
    StringGrid1->Canvas->FillRect(Rect);
    // Sélection de la couleur de texte
        if(State.Contains(gdSelected))
        {
         StringGrid1->Font->Color = clWhite;
        }
        else
        {
         StringGrid1->Font->Color = clBlack;
        }
    // Dessin du texte
    // soit
     StringGrid1->Canvas->TextOut(Rect.Left, Rect.Top, StringGrid1->Cells[ACol][ARow]);
    // soit
    // StringGrid1->Canvas->TextOut(Rect.Left, Rect.Top, (StringGrid1->Cells[ACol][ARow]).c_str());
    }
    //---------------------------------------------------------------------------
    Le code fonctionne mais il me reste cependant deux problemes

    1 - quelle fonction je dois utiliser les deux fonctionnent chez moi, mais il y en a une qui est forcement meilleure
    // Dessin du texte
    // soit
    StringGrid1->Canvas->TextOut(Rect.Left, Rect.Top, StringGrid1->Cells[ACol][ARow]);
    // soit
    StringGrid1->Canvas->TextOut(Rect.Left, Rect.Top, (StringGrid1->Cells[ACol][ARow]).c_str());
    2 - si " goEditing = false; et goAlwaysShowEditor = false; " il y a un cintillement desagreable, si " goEditing = true; et goAlwaysShowEditor = true; " le cintillement disparait, je n'ai pas encore trouve de reponse a ce probleme

  4. #4
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Citation Envoyé par blondelle Voir le message
    Le code fonctionne mais il me reste cependant deux problemes

    1 - quelle fonction je dois utiliser les deux fonctionnent chez moi, mais il y en a une qui est forcement meilleure


    2 - si " goEditing = false; et goAlwaysShowEditor = false; " il y a un cintillement desagreable, si " goEditing = true; et goAlwaysShowEditor = true; " le cintillement disparait, je n'ai pas encore trouve de reponse a ce probleme
    Pour le 1, la première solution sera la mieux car il y as un appelle de fonction en moins, donc à priori ce sera plus rapide, même si le temps d'exécution est faible autant faire au plus court

    Pour le 2, je n'ai pas trop d'idée, c'est assez spéciale

Discussions similaires

  1. [Langage/Algorithme] probleme de traduction code Delphi vers C++
    Par blondelle dans le forum C++Builder
    Réponses: 8
    Dernier message: 28/05/2013, 15h27
  2. Réponses: 2
    Dernier message: 26/07/2007, 18h44
  3. Probleme de traduction d'une fonction Delphi en BCB
    Par blondelle dans le forum C++Builder
    Réponses: 7
    Dernier message: 13/03/2007, 23h03
  4. Traduction C++ vers Delphi
    Par lil_jam63 dans le forum Langage
    Réponses: 6
    Dernier message: 05/07/2004, 13h10
  5. probleme traduction C vers Delphi
    Par zinaif dans le forum Langage
    Réponses: 3
    Dernier message: 27/06/2003, 08h51

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