j'ai encore un probleme
Je code sur la playlist de TCMP la et je me trouve dans une impasse.
La playlist est composee d'entrees, avec des champs fixes pour les tags connus (titre, artiste...) et d'une StringList pour les tags personnalises (extended) :
REntry = record;
Title: WideString;
Artist: WideString;
...
Extended: TCustomWideStringList;
end;
|
Pour l'edition de chaque entree, ca se fait dans une fenetre adequate qui est mise au courant du contenu en cours lors de son create. Comme je veux pouvoir annuler d'eventuelles modifications, je garde de cote l'entree d'origine et je travaille sur une copie :
TEditForm = class(TForm)
...
private
lEntry: REntry;
sEntry: PEntry; // PEntry: ^REntry;
public constructor Create(plEntry: REntry);
end;
et
constructor TEDitForm.Create(plEntry: REntry);
begin
inherited Create;
lEntry := plEntry;
sEntry := @plEntry;
...
end;
|
En cas d'annulation, on touche a rien, en cas de mise a jour, on fait sEntry^ := lEntry; (lEntry est l'enregistrement de travail).
Seulement voila, lEntry.Extended et sEntry^.Extended c'est le meme pointeur ALors comment je peux faire pour que lEntry.Extended soit une copie de plEntry.Exended comme les autres champs et non pas pointe sur les memes donnes ?
---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8