第 十 四 章 使 用 N N T P 控 件

第 十 四 章 使 用 N N T P 控 件 - 图1第 十 四 章 使 用 N N T P 控 件 - 图2第 十 四 章 使 用 N N T P 控 件 - 图3第 十 四 章 使 用 N N T P 控 件 - 图4第 十 四 章 使 用 N N T P 控 件 - 图5第 十 四 章 使 用 N N T P 控 件 - 图6NNT P 是 N e tw ork ing N e w s T ra n s fe r P ro toc o l的 缩 写 意 为 网 络 新 闻 传 输 协 议C+ + Bu ild e r 3 从 N e t M a n a g e 公 司 引 进 的 NNT P 控 件 可 以 方 便 地 登 录 到 NNT P 新闻 服 务 器 下 载 可 用 的 新 闻 组 列 表 选 择 新 闻 组 读 取 新 闻 组 中 的 文 章 或者 张 贴 自 己 的 文 章

第 十 四 章 使 用 N N T P 控 件 - 图7第 十 四 章 使 用 N N T P 控 件 - 图8第 十 四 章 使 用 N N T P 控 件 - 图9第 十 四 章 使 用 N N T P 控 件 - 图10第 十 四 章 使 用 N N T P 控 件 - 图11因 为 In te rn e t上 的 新 闻 组 很 多 每 个 新 闻 组 的 文 章 也 很 多 NNT P 控 件 具 有 很强 的 检 索 功 能 可 以 让 用 户 有 选 择 地 下 载 所 需 要 的 文 章 或 者 最 新 的 文 章 以 提 高 工 作 效 率

1 4. 1 NN TP 控 件 的 特 性

A tta c h F ile P a th 特 性

第 十 四 章 使 用 N N T P 控 件 - 图12声 明 p ro p e r ty A tta c h F ile P a th : s tr in g ;

第 十 四 章 使 用 N N T P 控 件 - 图13第 十 四 章 使 用 N N T P 控 件 - 图14第 十 四 章 使 用 N N T P 控 件 - 图15这 个 特 性 指 定 存 放 附 件 的 路 径 如 果 这 个 特 性 设 为 空 表 示 是 当 前 目 录

A tta c h m e n ts 特 性

第 十 四 章 使 用 N N T P 控 件 - 图16声 明 p ro p e r ty A tta c h m e n ts : T S trin g L is t;

第 十 四 章 使 用 N N T P 控 件 - 图17第 十 四 章 使 用 N N T P 控 件 - 图18第 十 四 章 使 用 N N T P 控 件 - 图19第 十 四 章 使 用 N N T P 控 件 - 图20调 用 了 G e t A r tic le 函 数 后 这 个 特 性 返 回 一 个 列 表 列 表 中 包 含 附 件 的 名 称程 序 示 例 如 下

v o id _ fa s tc a ll T F o rm 1 ::N M N N T P 1 A r tic le ( T O b je c t ∗ Se n d e r )

{

M e m o 1 -> T e x t = NM NNT P 1 -> A tta c h m e n ts -> T e x t ; M e m o2-> T e x t = N M N N T P 1 -> B o dy -> T e x t;

}

Bo d y 特 性

第 十 四 章 使 用 N N T P 控 件 - 图21声 明 prope r ty B ody : T E x S tr ingL is t;

第 十 四 章 使 用 N N T P 控 件 - 图22第 十 四 章 使 用 N N T P 控 件 - 图23调 用 了 G e t A r tic le 函 数 或 G e tA r tic le B o d y 函 数 后 这 个 特 性 返 回 文 章 的 正 文

B y te s R ecv d 特 性

第 十 四 章 使 用 N N T P 控 件 - 图24声 明 prope r ty B y te s R e c vd: long in t;

第 十 四 章 使 用 N N T P 控 件 - 图25第 十 四 章 使 用 N N T P 控 件 - 图26这 个 特 性 返 回 已 经 接 收 到 的 数 据 长 度 与 B y te s T o ta l特 性 配 合 使 用 可 以 显 示传 输 进 度

By te s S e n t 特 性

第 十 四 章 使 用 N N T P 控 件 - 图27声 明 prope r ty B y te s S e n t: long in t;

第 十 四 章 使 用 N N T P 控 件 - 图28这 个 特 性 返 回 已 经 向 新 闻 服 务 器 发 送 的 数 据 长 度

B y te s Tota l 特 性

第 十 四 章 使 用 N N T P 控 件 - 图29声 明 prope r ty B y te s T o ta l : long in t;

第 十 四 章 使 用 N N T P 控 件 - 图30第 十 四 章 使 用 N N T P 控 件 - 图31这 个 特 性 返 回 总 共 要 传 输 多 少 个 字 节 程 序 示 例 如 下

v o id _ fa s tc a ll T F o rm 1 ::N M N N T P 1 P a c k e t R e c v d ( T O b je c t∗ Se n d e r )

{

S ta tu s B a r1 -> S im p le T e x t = In t T o S tr(N M N N T P 1 -> B y te s R e c v d )+ " b y te s o f " + In tT o S tr ( N M N N T P 1 -> B y te s T o tal)+ " receiv e d " ;

}

C a ch e M o d e 特 性

第 十 四 章 使 用 N N T P 控 件 - 图32声 明 prope r ty C a c h e M ode : T C a c he M ode ;

第 十 四 章 使 用 N N T P 控 件 - 图33第 十 四 章 使 用 N N T P 控 件 - 图34第 十 四 章 使 用 N N T P 控 件 - 图35第 十 四 章 使 用 N N T P 控 件 - 图36第 十 四 章 使 用 N N T P 控 件 - 图37第 十 四 章 使 用 N N T P 控 件 - 图38第 十 四 章 使 用 N N T P 控 件 - 图39如 果 这 个 特 性 设 为 cm R e m o te 表 示 只 从 新 闻 服 务 器 中 检 索 文 章 如 果 这 个特 性 设 为 c m L o cal 表 示 只 从 本 地 缓 存 中 检 索 文 章 如 果 这 个 特 性 设 为cm M ix e d 表 示 既 可 以 从 新 闻 服 务 器 中 检 索 文 章 也 可 以 从 本 地 缓 存 中 检 索 文章 程 序 示 例 如 下

v o id _ fa s tc a ll T F o rm 1 ::B u tto n 1 C lic k ( T O b je c t * S e n d e r )

{

NM NNT P 1 -> T im e O u t = 2 0 0 0 0 ;

N M N N T P 1 -> N e w s D ir = " E :\\N e w s \\" ;

N M N N T P 1 -> A tta c h F ile P a th = " E :\\N e w s \\" ; NM NNT P 1 -> H o s t = " fo ru m s .b o r la n d . c o m " ; NM NNT P 1 -> P o r t = 1 1 9 ;

if ( E d it3 -> T e x t != " " )

{

NM NNT P 1 -> U s e r Id = E d i t 3 -> T e x t ;

NM NNT P 1 -> P a s s w o rd = E d i t 4 -> T e x t ;

}

if ( R a d io B u tto n 1 -> C h e c k e d )

N M N N T P 1 -> C a ch eM o d e = cm L o cal; if ( R a d io B u tto n 2 -> C h e c k e d )

N M N N T P 1 -> C a ch eM o d e = cm M ix e d ; if ( R a d io B u tto n 3 -> C h e c k e d )

N M N N T P 1 -> C a ch eM o d e = cm R e m o te ; if (C h e c k B o x 1 -> C h e c k e d )

NM NNT P 1 -> P a rs e A t ta c h m e n ts = tru e ;

els e

NM NNT P 1 -> P a rs e A t ta c h m e n ts = fa ls e ;

NM NNT P 1 -> C o n n e c t( ) ;

}

C o n n ecte d 特 性

第 十 四 章 使 用 N N T P 控 件 - 图40声 明 prope r ty C onne c te d : boo le a n ;

第 十 四 章 使 用 N N T P 控 件 - 图41第 十 四 章 使 用 N N T P 控 件 - 图42第 十 四 章 使 用 N N T P 控 件 - 图43如 果 当 前 与 新 闻 服 务 器 处 于 连 接 状 态 这 个 特 性 就 返 回 T ru e 程 序 示 例 如下

vo id _ fa s tc a l l T F orm 1 : : B u tton1C l ic k ( TO b je c t ∗ Se n d e r )

{

if ( N M N N T P 1 -> C o nne c te d != true ) NM NNT P 1 -> C o n n e c t( ) ;

}

C u rren t A rtic le 特 性

第 十 四 章 使 用 N N T P 控 件 - 图44声 明 p ro p e r ty C u r re n t A rtic le : in te g e r ;

第 十 四 章 使 用 N N T P 控 件 - 图45第 十 四 章 使 用 N N T P 控 件 - 图46这 个 特 性 返 回 当 前 文 章 的 编 号 程 序 示 例 如 下

v o id _ fa s tc a ll T F o rm 1 ::B itB tn 2 C lic k ( T O b je c t ∗ Se n d e r )

{

S c re e n -> C u rs o r = c r H o u rg la s s ;

N M N N T P 1 -> G e tA rtic le ( N M N N T P 1 -> C u r re n tA rtic le + 1 ) ; S tr ing G r id1-> R ow = S tr ing G r id 1 -> R o w + 1

S c re e n -> C u rs o r = c r D e fa u l t ;

}

G ro upL is t 特 性

第 十 四 章 使 用 N N T P 控 件 - 图47声 明 prope r ty G roupL is t: T S tr ingL is t;

第 十 四 章 使 用 N N T P 控 件 - 图48第 十 四 章 使 用 N N T P 控 件 - 图49第 十 四 章 使 用 N N T P 控 件 - 图50第 十 四 章 使 用 N N T P 控 件 - 图51调 用 了 G e t G roupL is t函 数 后 这 个 特 性 返 回 一 个 列 表 列 表 中 包 含 了 所 有 的新 闻 组 名 称 程 序 示 例 如 下

v o id _ fa s tc a ll T F o rm 1 ::B itB tn 6 C lic k ( T O b je c t ∗ Se n d e r )

{

NM NNT P 1 -> G e t G ro u p L is t( ) ;

M e m o3-> L in e s -> A s s ign ( N M N N T P 1 -> G rou pL is t) ; S how M e s sa g e (" N e w s g ro up up da te c o m p le te " ) ;

}

H e a d e r 特 性

第 十 四 章 使 用 N N T P 控 件 - 图52声 明 p ro p e r ty H e a d e r : T E x S trin g L is t;

第 十 四 章 使 用 N N T P 控 件 - 图53第 十 四 章 使 用 N N T P 控 件 - 图54调 用 了 G e t A r tic le 函 数 或 G e t A r tic le H ead er 函 数 后 这 个 特 性 返 回 当 前 文 章 的标 题

H iM e s s ag e 特 性

第 十 四 章 使 用 N N T P 控 件 - 图55声 明 prope r ty H i M e s s a ge : in te ge r ;

第 十 四 章 使 用 N N T P 控 件 - 图56第 十 四 章 使 用 N N T P 控 件 - 图57调 用 了 S e t G roup 函 数 后 这 个 特 性 返 回 当 前 选 择 的 新 闻 组 中 最 大 的 文 章 编号

H o s t 特 性

第 十 四 章 使 用 N N T P 控 件 - 图58声 明 prope r ty H o s t: S tr ing;

第 十 四 章 使 用 N N T P 控 件 - 图59这 个 特 性 用 于 指 定 要 连 接 的 NN T P 服 务 器 的 主 机 名 或 IP 地 址 默 认 值 是

第 十 四 章 使 用 N N T P 控 件 - 图60第 十 四 章 使 用 N N T P 控 件 - 图61第 十 四 章 使 用 N N T P 控 件 - 图62ne w s

Lo c a l I P 特 性

第 十 四 章 使 用 N N T P 控 件 - 图63声 明 prope r ty L o c a l IP : s tr ing ;

第 十 四 章 使 用 N N T P 控 件 - 图64第 十 四 章 使 用 N N T P 控 件 - 图65第 十 四 章 使 用 N N T P 控 件 - 图66第 十 四 章 使 用 N N T P 控 件 - 图67这 个 特 性 返 回 客 户 计 算 机 的 IP 地 址 如 果 计 算 机 有 多 个 IP 地 址 这 个 特 性 返回 其 中 第 一 个 程 序 示 例 如 下

vo id _ fa s tc a l l T F orm 1 : : B u tton9C l ic k ( TO b je c t∗ Se n d e r )

{

S h o w M e s sag e(" Y o u r lo c a l IP A d d ress is " + N M N N T P 1 -> L o cal IP ) ;

}

L o M e s s ag e 特 性

第 十 四 章 使 用 N N T P 控 件 - 图68声 明 prope r ty L o M e s s a g e : in te ge r ;

第 十 四 章 使 用 N N T P 控 件 - 图69第 十 四 章 使 用 N N T P 控 件 - 图70第 十 四 章 使 用 N N T P 控 件 - 图71调 用 了 S e t G roup 函 数 后 这 个 特 性 返 回 当 前 选 择 的 新 闻 组 中 最 小 的 文 章 编号 程 序 示 例 如 下

vo id _ fa s tc a l l T F orm 1 : : N M N N T P 1 G roupS e le c t( T O b je c t ∗ Se n d e r )

{

F o rm 1-> C a p t ion = " N N T P D e m o - [" + N M N N T P 1 -> S e le c te d G ro u p+ " L o :" +

In t T o S tr(N M N N T P 1 -> L o M e s s a g e )+ " H i :" + In t T o S tr(N M N N T P 1 -> H i M e s sa g e )+ " ]" ; if ( N M N N T P 1 -> P o s tin g )

F o rm 1 -> C a p tio n = F o rm 1 -> C a p tio n + " P o s tin g A llo w e d ]"

els e

}

F o rm 1 -> C a p tio n = F o rm 1 -> C a p tio n + " P o s tin g P ro h ib ite d ]" ;

N e w s D ir 特 性

第 十 四 章 使 用 N N T P 控 件 - 图72声 明 prope r ty N e w s D ir : s tr ing;

第 十 四 章 使 用 N N T P 控 件 - 图73第 十 四 章 使 用 N N T P 控 件 - 图74第 十 四 章 使 用 N N T P 控 件 - 图75这 个 特 性 用 于 指 定 一 个 目 录 临 时 存 放 文 章 如 果 这 个 特 性 设 为 空 就 是 当前 目 录

P a r s e A tta c h m en ts 特 性

第 十 四 章 使 用 N N T P 控 件 - 图76声 明 prope r ty P a rs e A tta c h m e n ts : boo le a n ;

第 十 四 章 使 用 N N T P 控 件 - 图77第 十 四 章 使 用 N N T P 控 件 - 图78如 果 这 个 特 性 设 为 T ru e 将 自 动 从 文 章 中 把 附 件 解 码 并 分 离 出 来

Pa s sw o r d 特 性

第 十 四 章 使 用 N N T P 控 件 - 图79声 明 prope r ty P a s s w ord: s tr ing;

第 十 四 章 使 用 N N T P 控 件 - 图80登 录 到 有 的 新 闻 服 务 器 时 可 能 需 要 给 出 口 令

Po r t 特 性

第 十 四 章 使 用 N N T P 控 件 - 图81声 明 prope r ty P o r t: L ong in t;

第 十 四 章 使 用 N N T P 控 件 - 图82第 十 四 章 使 用 N N T P 控 件 - 图83这 个 特 性 用 于 指 定 要 连 接 的 NN T P 服 务 器 的 端 口 号 默 认 是 119

Po s t B o d y 特 性

第 十 四 章 使 用 N N T P 控 件 - 图84声 明 prope r ty P o s t B o d y : T E x S tr ingL is t ;

第 十 四 章 使 用 N N T P 控 件 - 图85第 十 四 章 使 用 N N T P 控 件 - 图86这 个 特 性 用 于 指 定 要 张 贴 到 新 闻 组 的 文 章 的 正 文 程 序 示 例 如 下

vo id _ fa s tc a l l T F orm 1 : : B u tton1C l ic k ( TO b je c t ∗ Se n d e r )

{

N M N N T P 1 -> P o s t B o d y -> A s s ig n ( M e m o 1 -> L in e s ) ;

N M N N T P 1 -> P o s t R e c o rd -> P r F rom A ddre s s = " y og i@ b oo b o o .c o m " ; N M N N T P 1 -> P o s t R e c o rd -> P r R e p ly T o = " y og i@ boo bo o .c o m " ;

N M N N T P1 -> Po s t R e c o rd -> Pr Su b je c t = " T e s t Po s t in g " ;

NM NNT P 1 -> P o s t R e c o rd -> P r N e w s G ro u p s = NM NNT P 1 -> S e le c te d G ro u p ; NM NNT P 1 -> A tta c h m e n ts -> A ss ig n ( L is t B o x 1 -> I te m s ) ;

NM NNT P 1 -> P o s t H e a d e r -> V a lu e s [" R e fe re r" ]= " w w w . n e tm a s te rs l lc . c o m " ; NM NNT P 1 -> P o s t A rtic le ( ) ;

}

Po s t H e a d e r 特 性

第 十 四 章 使 用 N N T P 控 件 - 图87声 明 prope r ty P o s t H e a d e r : T E xS tr ingL is t;

第 十 四 章 使 用 N N T P 控 件 - 图88这 个 特 性 用 于 指 定 要 张 贴 到 新 闻 组 的 文 章 的 头 标 程 序 示 例 请 参 见 Po s t B o d y

第 十 四 章 使 用 N N T P 控 件 - 图89特 性

Po s tin g 特 性

第 十 四 章 使 用 N N T P 控 件 - 图90声 明 prope r ty P o s ting: boo le a n ;

第 十 四 章 使 用 N N T P 控 件 - 图91第 十 四 章 使 用 N N T P 控 件 - 图92如 果 当 前 选 择 的 新 闻 组 允 许 张 贴 文 章 这 个 特 性 就 返 回 T ru e

R e m o te I P 特 性

第 十 四 章 使 用 N N T P 控 件 - 图93声 明 prope r ty R e m o te IP : s tr ing ;

第 十 四 章 使 用 N N T P 控 件 - 图94第 十 四 章 使 用 N N T P 控 件 - 图95这 个 特 性 返 回 新 闻 服 务 器 的 IP 地 址 程 序 示 例 如 下

vo id _ fa s tc a l l T F orm 1 : : B u tton9C l ic k ( TO b je c t ∗ Se n d e r )

{

S h o w M e s sa g e (" C u r re n tly c o n n e c te d to : " + N M N N T P 1 -> R e m o te IP ) ;

}

R e p ly N u m be r 特 性

第 十 四 章 使 用 N N T P 控 件 - 图96声 明 prope r ty R e p ly N u m b e r : L o n g in t;

第 十 四 章 使 用 N N T P 控 件 - 图97这 个 只 读 的 特 性 返 回 NN T P 服 务 器 响 应 客 户 请 求 的 应 答 代 码

R e p o r t L e v e l 特 性

第 十 四 章 使 用 N N T P 控 件 - 图98声 明 prope r ty R e po r t L e ve l : in te ge r ;

第 十 四 章 使 用 N N T P 控 件 - 图99第 十 四 章 使 用 N N T P 控 件 - 图100第 十 四 章 使 用 N N T P 控 件 - 图101第 十 四 章 使 用 N N T P 控 件 - 图102第 十 四 章 使 用 N N T P 控 件 - 图103第 十 四 章 使 用 N N T P 控 件 - 图104第 十 四 章 使 用 N N T P 控 件 - 图105第 十 四 章 使 用 N N T P 控 件 - 图106这 个 特 性 用 于 指 定 状 态 信 息 的 详 细 程 度 可 以 设 为 以 下 值 S ta tu s _N one S ta tu s _In f - o rm a t iona l S tatu s _ B as ic S ta tus _R ou tin e s S ta tu s _D e bug S ta tu s _ T ra c e

Se le c te d G ro u p 特 性

第 十 四 章 使 用 N N T P 控 件 - 图107声 明 prope r ty S e le c te d G roup: s tr ing ;

第 十 四 章 使 用 N N T P 控 件 - 图108第 十 四 章 使 用 N N T P 控 件 - 图109调 用 了 S e t G roup 函 数 后 这 个 特 性 返 回 当 前 选 择 的 新 闻 组 名

S ta tu s 特 性

第 十 四 章 使 用 N N T P 控 件 - 图110声 明 prope r ty S ta tus : S tr ing;

第 十 四 章 使 用 N N T P 控 件 - 图111这 个 特 性 返 回 当 前 的 状 态 信 息

T im e o u t 特 性

第 十 四 章 使 用 N N T P 控 件 - 图112声 明 prope r ty T im e O u t: In te ge r ;

第 十 四 章 使 用 N N T P 控 件 - 图113第 十 四 章 使 用 N N T P 控 件 - 图114这 个 特 性 用 于 指 定 一 个 毫 秒 数 如 果 超 过 规 定 的 时 间 S o ck et没 有 响 应 就 触 发异 常

Tra n s a c tio n R e p ly 特 性

第 十 四 章 使 用 N N T P 控 件 - 图115声 明 prope r ty T ra n s a c tionR e p ly : S tr ing;

第 十 四 章 使 用 N N T P 控 件 - 图116第 十 四 章 使 用 N N T P 控 件 - 图117这 个 特 性 返 回 上 一 次 命 令 的 执 行 结 果 程 序 示 例 如 下

vo id _ fa s tc a l l T F orm 1 : : B u tton1C l ic k ( TO b je c t∗ Se n d e r )

{

NM NNT P 1 -> C o n n e c t( ) ;

S how M e s sa g e ( N M N N T P 1-> T ra nsa c tio nR e p ly ) ;

}

U s erI d 特 性

第 十 四 章 使 用 N N T P 控 件 - 图118声 明 prope r ty U s e r Id : W ide S tr ing;

第 十 四 章 使 用 N N T P 控 件 - 图119第 十 四 章 使 用 N N T P 控 件 - 图120这 个 特 性 用 于 设 置 用 户 名 与 Pa ss w o rd 特 性 一 起 用 于 身 份 验 证

1 4. 2 N N T P 控 件 的 方 法

C o n n ec t 函 数

第 十 四 章 使 用 N N T P 控 件 - 图121声 明 proc e dure C o n n e c t;

第 十 四 章 使 用 N N T P 控 件 - 图122第 十 四 章 使 用 N N T P 控 件 - 图123第 十 四 章 使 用 N N T P 控 件 - 图124第 十 四 章 使 用 N N T P 控 件 - 图125这 个 函 数 用 于 登 录 到 NN T P 服 务 器 H o s t Po r t U s e rId 和 Pa ss w o rd 等 特 性 必须 事 先 设 置 好

D is c o n n ec t 函 数

第 十 四 章 使 用 N N T P 控 件 - 图126声 明 proc e dure D is c onne c t;

第 十 四 章 使 用 N N T P 控 件 - 图127这 个 函 数 断 开 与 新 闻 服 务 器 的 连 接

G e t A r tic le 函 数

第 十 四 章 使 用 N N T P 控 件 - 图128声 明 p ro c e d u re G e t A rtic le ( R e f : in te g e r ) ;

第 十 四 章 使 用 N N T P 控 件 - 图129第 十 四 章 使 用 N N T P 控 件 - 图130第 十 四 章 使 用 N N T P 控 件 - 图131这 个 函 数 从 新 闻 服 务 器 的 当 前 新 闻 组 中 检 索 一 篇 文 章 R e f 参 数 指 定 该 文 章的 编 号 程 序 示 例 如 下

v o id _ fa s tc a ll T F o rm 1 ::B u tto n 1 C lic k ( T O b je c t ∗ Se n d e r )

{

NM NNT P 1 -> G e t A r t ic le ( 1 5 6 ) ;

}

G e t A r tic le B o d y 函 数

第 十 四 章 使 用 N N T P 控 件 - 图132声 明 p ro c e d u re G e t A rtic le B o d y ( R e f : in te g e r ) ;

第 十 四 章 使 用 N N T P 控 件 - 图133第 十 四 章 使 用 N N T P 控 件 - 图134这 个 函 数 用 于 从 新 闻 服 务 器 的 当 前 新 闻 组 中 检 索 一 篇 文 章 的 正 文 R e f 参 数指 定 该 文 章 的 编 号

G e t A r tic le H e a d e r 函 数

第 十 四 章 使 用 N N T P 控 件 - 图135声 明 p ro c e d u re G e t A rtic le H e a d e r ( R e f : in te g e r ) ;

第 十 四 章 使 用 N N T P 控 件 - 图136第 十 四 章 使 用 N N T P 控 件 - 图137这 个 函 数 用 于 从 当 前 新 闻 组 中 检 索 一 篇 文 章 的 标 题 R e f 参 数 指 定 该 文 章 的编 号

G e t A r tic le L is t 函 数

第 十 四 章 使 用 N N T P 控 件 - 图138声 明 proc e dure G e t A r tic le L is t( A ll: boo le a n; A r tic le N u m be r : in te g e r ) ;

第 十 四 章 使 用 N N T P 控 件 - 图139第 十 四 章 使 用 N N T P 控 件 - 图140第 十 四 章 使 用 N N T P 控 件 - 图141第 十 四 章 使 用 N N T P 控 件 - 图142第 十 四 章 使 用 N N T P 控 件 - 图143第 十 四 章 使 用 N N T P 控 件 - 图144第 十 四 章 使 用 N N T P 控 件 - 图145这 个 函 数 用 于 从 当 前 选 择 的 新 闻 组 中 检 索 文 章 的 列 表 如 果 A ll 参 数 设 为T ru e 列 表 中 包 含 新 闻 组 中 的 所 有 文 章 如 果 A ll参 数 设 为 Fa ls e 列 表 中 只包 含 编 号 大 于 A rtic le N u m b e r 参 数 的 文 章 每 检 索 到 一 个 文 章 就 会 触 发 一次 O n H e a d e r L is t事 件

G e t G ro upL is t 函 数

第 十 四 章 使 用 N N T P 控 件 - 图146声 明 proc e dure G e t G roupL is t;

第 十 四 章 使 用 N N T P 控 件 - 图147第 十 四 章 使 用 N N T P 控 件 - 图148这 个 函 数 很 重 要 用 于 获 得 新 闻 服 务 器 中 所 有 新 闻 组 的 列 表

Po s t A r tic le 函 数

第 十 四 章 使 用 N N T P 控 件 - 图149声 明 proc e dure P o s t A r t ic le ;

第 十 四 章 使 用 N N T P 控 件 - 图150第 十 四 章 使 用 N N T P 控 件 - 图151这 个 函 数 用 于 张 贴 文 章 Po s t B o d y 特 性 和 P o s t H ead e r特 性 必 须 事 先 设 置 好

Se t G ro u p 函 数

第 十 四 章 使 用 N N T P 控 件 - 图152声 明 proc e dure S e t G roup( G roup: S tr ing);

第 十 四 章 使 用 N N T P 控 件 - 图153第 十 四 章 使 用 N N T P 控 件 - 图154这 个 函 数 把 G roup 参 数 指 定 的 新 闻 组 设 为 当 前 新 闻 组 程 序 示 例 如 下

v o id _ fa s tc a ll T F o rm 1 ::L is tB o x 1 D b l C lic k ( T O b je c t * S e n d e r ) ;

{

N M N N T P 1 -> S e tG ro u p (" a lt.p a s c a l.d e lp h i" ) ;

}

1 4. 3 N N T P 控 件 的 事 件

第 十 四 章 使 用 N N T P 控 件 - 图155第 十 四 章 使 用 N N T P 控 件 - 图156第 十 四 章 使 用 N N T P 控 件 - 图157第 十 四 章 使 用 N N T P 控 件 - 图158NNT P 控 件 的 事 件 往 往 是 与 调 用 某 个 方 法 相 关 联 的 如 果 事 件 被 触 发 通 常表 示 调 用 成 功 您 可 以 在 处 理 事 件 的 句 柄 中 得 到 NNT P 服 务 器 的 返 回 信 息

O n A r tic le 事 件

第 十 四 章 使 用 N N T P 控 件 - 图159声 明 p ro p e r ty O n A rtic le : T N o tif y E v e n t ;

第 十 四 章 使 用 N N T P 控 件 - 图160第 十 四 章 使 用 N N T P 控 件 - 图161每 下 载 一 篇 文 章 就 会 触 发 一 次 这 个 事 件 程 序 示 例 如 下

v o id _ fa s tc a ll T F o rm 1 ::N M N N T P 1 A r tic le ( T O b je c t ∗ Se n d e r )

{

M e m o 1 -> T e x t = NM NNT P 1 -> H e a d e r -> T e x t ; M e m o2-> T e x t = N M N N T P 1 -> B o dy -> T e x t;

}

O n A r tic le C a c he U pda te 事 件

第 十 四 章 使 用 N N T P 控 件 - 图162声 明 p ro p e r ty O n A r tic le C ach eU p d a te : T H an d ler E v en t;

第 十 四 章 使 用 N N T P 控 件 - 图163第 十 四 章 使 用 N N T P 控 件 - 图164其 中 T H an d ler E v en t是 这 样 声 明 的

T H a nd le r E v e n t = P roc e dure ( va r ha nd le d : boo le a n ) o f O b je c t ;

第 十 四 章 使 用 N N T P 控 件 - 图165每 下 载 一 篇 文 章 并 且 该 文 章 需 要 保 存 到 缓 存 中 时 就 会 触 发 这 个 事 件

O n A u th e n tic a tio n F a ile d 事 件

第 十 四 章 使 用 N N T P 控 件 - 图166声 明 prope r ty O n A u th e n tic a t ionF a i le d : T H a nd le r E v e n t;

第 十 四 章 使 用 N N T P 控 件 - 图167第 十 四 章 使 用 N N T P 控 件 - 图168其 中 T H an d ler E v en t是 这 样 声 明 的

T H a nd le r E v e n t = P roc e dure ( va r ha nd le d : boo le a n ) o f O b je c t ;

第 十 四 章 使 用 N N T P 控 件 - 图169第 十 四 章 使 用 N N T P 控 件 - 图170第 十 四 章 使 用 N N T P 控 件 - 图171第 十 四 章 使 用 N N T P 控 件 - 图172第 十 四 章 使 用 N N T P 控 件 - 图173第 十 四 章 使 用 N N T P 控 件 - 图174第 十 四 章 使 用 N N T P 控 件 - 图175当 登 录 到 新 闻 服 务 器 时 如 果 没 有 事 先 给 出 用 户 名 和 口 令 或 者 用 户 名 和口 令 是 非 法 的 将 会 触 发 这 个 事 件 更 正 了 错 误 后 如 果 把 H a nd le d 参 数 设为 T ru e 将 再 登 录 一 遍

O n A u th en tica tio n N eed e d 事 件

第 十 四 章 使 用 N N T P 控 件 - 图176声 明 prope r ty O n A u th e n tic a t ionN e e d e d : T H a nd le r E v e n t;

第 十 四 章 使 用 N N T P 控 件 - 图177如 果 某 个 操 作 需 要 验 证 用 户 的 身 份 就 会 触 发 这 个 事 件

O n B o d y 事 件

第 十 四 章 使 用 N N T P 控 件 - 图178声 明 prope r ty O n B o d y : T N o tif y E ve n t;

第 十 四 章 使 用 N N T P 控 件 - 图179第 十 四 章 使 用 N N T P 控 件 - 图180每 下 载 到 一 篇 文 章 的 正 文 就 会 触 发 这 个 事 件 程 序 示 例 如 下

vo id _ fa s tc a l l T F orm 1 : : N M N N T P 1 B ody ( T O b je c t∗ Se n d e r )

{

M e m o1-> L in e s -> A s s ign ( N M N N T P 1 -> B o d y ) ;

}

O n B o dy C a c h e U pda te 事 件

第 十 四 章 使 用 N N T P 控 件 - 图181声 明 p ro p e r ty O n B o d y C ach e U p d ate : T H a n d ler E v en t;

第 十 四 章 使 用 N N T P 控 件 - 图182每 下 载 一 篇 文 章 的 正 文 并 且 该 正 文 需 要 保 存 到 缓 存 中 时 就 会 触 发 这 个 事件

O n C o n n ec t 事 件

第 十 四 章 使 用 N N T P 控 件 - 图183声 明 prope r ty O n C onne c t: T N o tif y E v e n t;

第 十 四 章 使 用 N N T P 控 件 - 图184当 客 户 已 经 成 功 地 连 接 到 新 闻 服 务 器 时 将 触 发 这 个 事 件

O n C o n n ectio n F a ile d 事 件

第 十 四 章 使 用 N N T P 控 件 - 图185声 明 prope r ty O n C onne c tionF a ile d: T N o tify E ve n t;

第 十 四 章 使 用 N N T P 控 件 - 图186当 客 户 试 图 登 录 到 新 闻 服 务 器 失 败 时 将 触 发 这 个 事 件

O n D is c o nne c t 事 件

第 十 四 章 使 用 N N T P 控 件 - 图187声 明 prope r ty O n D is c onne c t: T N o tif y E v e n t;

第 十 四 章 使 用 N N T P 控 件 - 图188第 十 四 章 使 用 N N T P 控 件 - 图189第 十 四 章 使 用 N N T P 控 件 - 图190第 十 四 章 使 用 N N T P 控 件 - 图191第 十 四 章 使 用 N N T P 控 件 - 图192当 客 户 断 开 与 新 闻 服 务 器 的 连 接 时 将 触 发 这 个 事 件 注 意 在 处 理 这 个 事件 的 句 柄 中 如 果 需 要 访 问 VC L 元 件 的 话 最 好 先 判 断 VC L 元 件 是 否 存 在

O n G ro u p L is t C a c h e U p d a te 事 件

第 十 四 章 使 用 N N T P 控 件 - 图193声 明 prope r ty O n G roupL is t C a c h e U pda te : T G ro u p R e tr ie v e dC a c h e E v e n t;

第 十 四 章 使 用 N N T P 控 件 - 图194第 十 四 章 使 用 N N T P 控 件 - 图195其 中 T G roupR e tr ie v e d C a c h e E ve n t是 这 样 声 明 的

T G ro u p R e tr ie v e dC a c he E v e n t = P roc e du re ( v a r H a n d le d: b o o le a n; N a m e : s tr ing; F irs tA rtic le , L a s t A rtic le : in te g e r ; P o s tin g : b o o le a n ) o f o b je c t ;

第 十 四 章 使 用 N N T P 控 件 - 图196第 十 四 章 使 用 N N T P 控 件 - 图197每 当 检 索 到 一 个 新 闻 组 时 就 会 触 发 这 个 事 件 N a me 参 数 是 新 闻 组 名 称

第 十 四 章 使 用 N N T P 控 件 - 图198第 十 四 章 使 用 N N T P 控 件 - 图199第 十 四 章 使 用 N N T P 控 件 - 图200第 十 四 章 使 用 N N T P 控 件 - 图201F irs tA rtic le 参 数 是 新 闻 组 中 第 一 篇 文 章 的 编 号 L a s t A rtic le 参 数 是 新 闻 组 中最 后 一 篇 文 章 的 编 号 Po s tin g 参 数 为 T ru e 表 示 允 许 张 贴 文 章 程 序 示 例 如下

vo id _fa s tc a l l T F orm 1 : : N M N N T P 1 G ro upL is t C a c h e U p d a te ( b o o l & H a nd le d , A n s i S tr in g N a m e , in t F ir s t A r - t ic le , L a s t A r t ic le , bool P o s t in g)

{

L is t B o x 1 -> I te m s -> A d d ( N a m e ) ;

}

O n G ro u p S e le c t 事 件

第 十 四 章 使 用 N N T P 控 件 - 图202声 明 prope r ty O n G roupS e le c t: T N o tif y E v e n t;

第 十 四 章 使 用 N N T P 控 件 - 图203第 十 四 章 使 用 N N T P 控 件 - 图204当 程 序 调 用 S e t G roup 函 数 选 择 了 当 前 新 闻 组 后 就 会 触 发 这 个 事 件

O n G ro u pSe le c t R e qu ire d 事 件

第 十 四 章 使 用 N N T P 控 件 - 图205声 明 prope r ty O n G roupS e le c t R e qu ire d: T H a n d le r E v e n t;

第 十 四 章 使 用 N N T P 控 件 - 图206第 十 四 章 使 用 N N T P 控 件 - 图207第 十 四 章 使 用 N N T P 控 件 - 图208第 十 四 章 使 用 N N T P 控 件 - 图209NNT P 控 件 的 大 部 分 操 作 是 针 对 当 前 新 闻 组 进 行 的 如 果 当 前 没 有 指 定 新 闻组 就 会 触 发 这 个 事 件 程 序 示 例 如 下

vo id _ fa s tc a l l T F orm 1 : : N M N N T P 1 G roupS e le c t R e qu ire d( b o o l & H a n d le d )

{

A n s i S tr ing T m p S tr ;

if ( In p u tQ u e ry ( " N e w s g ro u p s e le c to io n R e q u ire d ! " ," E n te r N e w s G ro u p N a m e :" ,T m p S tr ) )

{

N M N N T P 1 -> S e t G ro u p (T m p S tr ) ; ha n d le d = true ;

}

}

O n H e a d e r 事 件

第 十 四 章 使 用 N N T P 控 件 - 图210声 明 prope r ty O n H e a d e r : T N o tif y E ve n t;

第 十 四 章 使 用 N N T P 控 件 - 图211第 十 四 章 使 用 N N T P 控 件 - 图212每 检 索 到 一 篇 文 章 的 头 标 就 会 触 发 这 个 事 件 程 序 示 例 如 下

v o id _ fa s tc a ll T F o rm 1 ::N M N N T P 1 H e a d e r ( T O b je c t * S e n d e r )

{

M e m o 1 -> L in es -> A s s ig n ( N M N N T P 1 -> H ead er);

}

O n H e a d e r C a c he U pda te 事 件

第 十 四 章 使 用 N N T P 控 件 - 图213声 明 prope r ty O n H e a d e r C a c h e U pda te : T H e a de r C a c he E v e n t ;

第 十 四 章 使 用 N N T P 控 件 - 图214每 检 索 到 一 篇 文 章 的 头 标 并 且 该 头 标 需 要 保 存 到 缓 存 中 时 就 会 触 发 这 个 事件

O n I n v a lid A r tic le 事 件

第 十 四 章 使 用 N N T P 控 件 - 图215声 明 prope r ty O n Inva l idA r tic le : T N o tify E v e n t;

第 十 四 章 使 用 N N T P 控 件 - 图216第 十 四 章 使 用 N N T P 控 件 - 图217如 果 要 下 载 的 文 章 不 存 在 就 会 触 发 这 个 事 件

O n I n v a lid H o s t 事 件

第 十 四 章 使 用 N N T P 控 件 - 图218声 明 prope r ty O n Inva l idH os t: T H a nd le r E v e n t;

第 十 四 章 使 用 N N T P 控 件 - 图219第 十 四 章 使 用 N N T P 控 件 - 图220当 H o s t特 性 所 指 定 的 主 机 名 是 非 法 的 就 触 发 这 个 事 件

O n P o s te d 事 件

第 十 四 章 使 用 N N T P 控 件 - 图221声 明 prope r ty O n P o s te d : T N o tify E ve n t;

第 十 四 章 使 用 N N T P 控 件 - 图222第 十 四 章 使 用 N N T P 控 件 - 图223当 一 篇 文 章 已 经 成 功 地 张 贴 到 新 闻 组 中 就 会 触 发 这 个 事 件