视控件具有主观意识。 Subject 参数通过 ISubject 指针传入这个方法,但是我们需要用 TListModel 来处理; 第一行我们利用 QueryInterface 判断是否传入的 Subject 支 持 IListModel 接口。如果支持,Obj 变量将设置成有效指针;如果不支持 Obj 将设置为 nil。如果我们有一个有效 Obj 指针,我们现在就可以像对 待其他任何一个 IListModel 的引用使用 Obj。 首先我们调用基于 ListBox 的 Items 字符串列表的 BeginUpdate 方法(避免闪烁);然 后我们简单的清除字符串列表并读入 ListMode 中的每个 Item。
当然最好紧紧更新那些已经变化了的 Items,但是我已经说过这个实例将尽可能要简 单! 另一视图 当我们创建我们第一个列表视图,我想我将告诉你在 ListModel 上创建一个选择性视图 会多么简单: TComboBoxView = class(TComboBox, IObserver) private procedure IObserve