realbasic-nug.fr
[Top] [All Lists]

Re: Couper les ponts

To: REALbasic NUG French <realbasic-nug dot fr at lists dot realsoftware dot com>
Subject: Re: Couper les ponts
From: Arnaud Nicolet <arnaud at tribu dot ch>
Date: Fri, 28 Jul 2006 17:39:10 +0200
Delivered-to: listarchive at realsoftware dot com
Delivered-to: realbasic-nug dot fr at lists dot realsoftware dot com
References: <20060728144522 dot 831B01C003FA at mwinf0804 dot orange dot fr>
Le 28 juil. 06 à 16:45 Soir, Damien a écrit:

Est-il possible d'avoir le bout de code correspondant à tes manips?

Je suppose qu'il a fait quelque chose du genre (je n'en suis pas sûr), illustré par cet exemple:

dim d as date
dim e as date

d=new date
e=new date

d.day=4
e.day=5

e=d

e.day=6

Là, le fait de changer e.day à 6 change également d.day à 6 car "e=d", vous pouvez essayer , ça se passera comme ça.

En tout cas en Realbasic, il faut différencier deux sortes de variables: les objets et "les autres".

Un objet lié à un autre par le signe égal (tel que l'exemple ci- dessus) ne fait que pointer l'objet à gauche de l'égal à la même place mémoire que l'objet à droite. Cela signifie que les deux objets (ici e et d) ont un pointeur vers la même adresse mémoire. On modifie l'un des deux et l'autre "voit" le même changement.

Pour une variable qui n'est pas de type objet, (integer, boolean, etc.), là le contenu est copié (l'explication d'une telle différence m'est vague).

Donc, pour l'exemple ci dessus, plutôt que d'écrire:

e=d

il aurait fallu écrire

e.totalseconds=d.totalseconds

Le problème de Hubert, comme je le comprends, est qu'il prend la propriété StyledText (qui renvoie un objet de type StyledText (comme on pouvait s'y attendre...)) et qu'il le modifie (ayant préalablement passé par une variable). C'est comme j'explique: mettre un objet dans une autre variable en utilisant le signe "=" ne fait que lier les deux objets. On modifie l'un des deux et l'autre reflète le changement.

Je sais que ce n'est ni élégant ni amusant, mais en général il faut s'amuser à copier les propriétés d'un objet à un autre pour résoudre ce problème (certains objets ont une méthode "clone", tel qu'un objet son), mais de loin pas tous en Realbasic.

PS: si j'ai bien compris le problème de Hubert.

<Prev in Thread] Current Thread [Next in Thread>