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

EDI Delphi Discussion :

[Kylix] VarArrayCreate qui merde sous Kylix2


Sujet :

EDI Delphi

  1. #1
    Invité
    Invité(e)
    Par défaut VarArrayCreate qui merde sous Kylix2
    Bonjour,

    j'en suis sur a 99%, le VarArrayCreate merde sous Kylix2.Le code suivant ne me renvoie pas les données dans le bon ordre.

    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
     
    var
      i,j, a, b: integer;
      varTest: variant;
    begin
      a := 16;
      b := 16;
      varTest := VarArrayCreate([0,a,0,b],varVariant);
     
      memGetBroadcasts.Clear;
     
      // Stockage
      for i:= 0 to a do begin
       for j:= 0 to b do begin
          varTest[i,j] := IntToStr(i) + '*' + IntToStr(j);
          memo1.Lines.Add('Affectation ' + IntToStr(i) + '/' + IntToStr(j) + '=' + varTest[i,j]);
       end;
      end;
     
      // Lecture  
      for i:= 0 to a do begin
        for j:= 0 to b do begin
         memo1.Lines.Add(IntToStr(i) + '/' + IntToStr(j) + '=' + (varTest[i,j]));
        end;
      end;
    end;
    Des fois ca marche, des fois l'ordre n'esr pas correcte, des fois le VarArrayCreate plante (avec a=4 et b=16 par exemple).

    Pour a=b=2 j'ai

    Affectation 0/0=0*0
    Affectation 0/1=0*1
    Affectation 0/2=0*2
    Affectation 1/0=1*0
    Affectation 1/1=1*1
    Affectation 1/2=1*2
    Affectation 2/0=2*0
    Affectation 2/1=2*1
    Affectation 2/2=2*2

    Résultat:

    0/0=0*0
    0/1=1*0
    0/2=2*0
    1/0=1*0
    1/1=2*0
    1/2=2*1
    2/0=2*0
    2/1=2*1
    2/2=2*2

    C n'importe qoi!
    Quelq'un peut il me confirmer ce bug?
    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    voici ma solution

    apparement VarArrayCreate fonctionne quand on utilise une seule dimension.

    Donc j'utilise un TGetValeurResultList (dérivé de TList) qui stocke un objet TGetValeurResult.
    J'accède a mes dimensions avec la fonction TGetValeurResultList.Val(i,j)

    D'accord c un peu lourd, mais je récupère des unités issues de Delphi7 qui fonctionnent correctement. Les modifs sont moindres dans 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
     
    TGetValeurResult = class(TObject)
    public
      varValeurs: variant;
    end;
     
    TGetValeurResultList = class(TList)
    protected
      function Get(Index: Integer): TGetValeurResult;
      procedure Put(Index: Integer; const Value: TGetValeurResult);
    private
    public
      destructor destroy;override;
      property Items[Index: Integer]: TGetValeurResult read Get write Put; default;
      function Val(i,j: integer): variant;
    end;
     
    function TGetValeurResultList.Get(Index: Integer): TGetValeurResult;
    begin
      Result := TGetValeurResult(inherited get(Index));
    end;
     
    procedure TGetValeurResultList.Put(Index: Integer;
      const Value: TGetValeurResult);
    begin
      inherited Put(Index, Pointer(Value));
    end;
     
    function TGetValeurResultList.Val(i, j: integer): variant;
    begin
      result := Self.Items[i].varValeurs[j];
    end;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Kylix] Probleme d'installation sous Mdk 9.1
    Par anderson2 dans le forum EDI
    Réponses: 4
    Dernier message: 25/05/2003, 19h27
  2. [Kylix] Probleme de séparateur avec Kylix2 ?
    Par jeanphy dans le forum EDI
    Réponses: 4
    Dernier message: 10/02/2003, 17h41
  3. Réponses: 1
    Dernier message: 23/10/2002, 14h40
  4. [Kylix] crypter la saisie sous kylix
    Par nahmsath dans le forum EDI
    Réponses: 2
    Dernier message: 15/10/2002, 14h16
  5. [Kylix] Pb installation Indy80 sur Kylix2 OE
    Par PapaJLM dans le forum EDI
    Réponses: 2
    Dernier message: 26/07/2002, 23h52

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