Afficher un message
Vieux 29/10/2007, 10h47   #6
Loïs Bégué
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: a propos d'heritage (Tstrings)

loki schrieb:
> bien parceque le hic c'est que justement le truc que je veux changer c'est dans les 3 lignes de code dans le procedure SetValue ! pas de bol je sais ...
>
> en fait je veux que l'instruction
>
> myStringList['aname'] := ''
>
> ne me supprime pas la ligne "aname=" du TstringsList et ca c'est uniquement dans le setvalue que ca se passe !
>
> a++
> stéphane
>
>
> "Henri Gourvest" <x@x.com> wrote in message news:ffv81q$5ih$1@sd-6498.dedibox.fr...
>> Et pourquoi ne pas plutot surcharger les fonctions get, put et IndexOfName ?
>>
>> loki a écrit :
>>> Soit la classe Tstrings :
>>>
>>> TStrings = class(TPersistent)
>>> private
>>> function GetValue(const Name: string): string;
>>> procedure SetValue(const Name, Value: string);
>>> protected
>>> public
>>> property Values[const Name: string]: string read GetValue write SetValue;
>>> end;
>>>
>>> Je voudrais dans une classe enfant modifier la procedure SetValue .. comment je peux faire cela ? bon je sais c'est pas possible mais bon ...
>>>
>>> a++
>>> stéphane

Si je ne me gourre pas (mais j'ai pas re-testé cette technique récemment
.... ça fait tellement longtemps que je ne l'ai plus employée), on peut
hacker un peu.

Dans le formulaire ou tu as besoin de la fonction:

Unit Form1;
interface


Uses ..... ;

TStrings = class (Classes.TStrings)
procedure SetValue(const Name, Value: string);
End;

TForm1 = class (TForm)
...
End;

Implementation
....
procedure TStrings.SetValue(const Name, Value: string);
Begin
....
inherit SetValue(...); (* si nécessaire, c.a.d. la plupart du temps *)
....
End;

  Réponse avec citation
 
Page generated in 0,05846 seconds with 9 queries