Fornire un evento OnChange per una proprietà interna che è controllata esternamente?

2

Per divertimento e su richiesta sto aggiornando questo componente ImageGrid , una sorta di listbox per le immagini che ha un FileNames proprietà di tipo TStrings .

Per facilità di scrittura, ho usato male la sua proprietà FileNames.Objects per l'archiviazione bitmap. Ma poiché il tipo TStrings suggerisce che gli utenti del componente potrebbero o vorranno utilizzare la proprietà Objects per dati personalizzati, ad es. come TListBox.Items , sto riscrivendo il componente per archiviare le bitmap altrove e lasciare FileNames.Objects non trattato per un utilizzo futuro sconosciuto.

Ora mi chiedo se fornire un evento OnChange . E se è così, se spararlo quando uno o più FileNames.Objects cambia.

Cercando di rispondere da solo, mi sono tuffato nel VCL di Delphi e sono incappato in:

  • TMemo : ha un evento OnChange , ma ignora Lines.Objects
  • TListBox : non ha evento OnChange , ma è in grado di memorizzare Items.Objects
  • TStringGrid : non ha evento OnChange , ma è in grado di memorizzare Objects , Rows.Objects , Cols.Objects

Quindi ora sono alquanto sconcertato, perché non posso immaginare che gli sviluppatori di Borland non abbiano aggiunto gli eventi per diverse proprietà Objects di facilità. Certo, quando un utente cambia una FileNames.Object nel mio componente, sa che lo fa e potrebbe implementare l'interazione appropriata da solo. Ma non sarebbe conveniente quando il componente lo fa automaticamente?

Cosa ti aspetti da questo componente in questo senso?

    
posta NGLN 14.04.2012 - 16:38
fonte

0 risposte

Leggi altre domande sui tag