|
| Hvordan "fanges" opdatering af array-eleme~ Fra : Thomas Holmgren |
Dato : 08-03-04 10:49 |
|
Hej Alle!
Jeg har lavet min egen klasse, som arver fra TObjectList. Der skal ske
speciel processering når objekter i min liste manipuleres (læses, indsættes,
ændres og slettes). Objekter tilgås udelukkende gennem en array-property
("Items", som den hedder i TObjectList). Jeg har lavet nye get og
set-metoder, så jeg kan "fange" når objekter læses og indsættes i listen.
MEN, hvordan i alverden finder jeg ud af at et objekt opdateres? Jeg tænker
på en opdatering på følgende måde:
minListe.Items[i].Att := 5;
Hvordan "fanger" jeg - internt i min TObjectList-specialisering - at denne
opdatering foregår?
Da jeg laver forskellige former for synkronisering er det vigtigt jeg
"fanger" opdateringen af objektet MENS den sker, og ikke bagefter.
--
Mvh.
Thomas Holmgren
| |
David Konrad (08-03-2004)
| Kommentar Fra : David Konrad |
Dato : 08-03-04 11:09 |
|
"Thomas Holmgren" <thm@regnecentralen.dk> wrote in message
news:c2hfjb$2ag7$1@news.cybercity.dk...
> Hej Alle!
>
> Jeg har lavet min egen klasse, som arver fra TObjectList. Der skal ske
> speciel processering når objekter i min liste manipuleres (læses,
indsættes,
> ændres og slettes). Objekter tilgås udelukkende gennem en array-property
> ("Items", som den hedder i TObjectList). Jeg har lavet nye get og
> set-metoder, så jeg kan "fange" når objekter læses og indsættes i listen.
> MEN, hvordan i alverden finder jeg ud af at et objekt opdateres? Jeg
tænker
> på en opdatering på følgende måde:
>
> minListe.Items[i].Att := 5;
Prøv at sætte et breakpoint i minListe.SetItems() (hvis set-metoden da
hedder det) og jeg er ganske sikker på, at du vil se, at du allerede
"fanger" opdateringen. Getset'er metoderne bruges netop til den type
formål - i et andet scenarie kunne det være at værdierne som kommer ind og
ud af items-propertien skulle konverteres, og også her ville du selvfølgelig
fange hvert et kald. Set og Get-metoderne kaldes naturligvis også, selvom du
kalder properties på objektet der er property-typen. Selvom du kalder feks
property.object.height bliver metoderne setObject eller getObject stadig
kaldt implicit.
> Hvordan "fanger" jeg - internt i min TObjectList-specialisering - at denne
> opdatering foregår?
>
> Da jeg laver forskellige former for synkronisering er det vigtigt jeg
> "fanger" opdateringen af objektet MENS den sker, og ikke bagefter.
Du får det ovenikøbet inden, og kan så selv afgøre om du vil gennemføre
opdateringen eller cancle den.
| |
|
|