闂佽 鍋撻柟顖滃椤ワ拷 (0) +1 闁荤姍宥嗗 (0) +1 闂傚⿴浜烽幏锟� (0) +1
闂佽 鍋撻柟顖滃椤ユ垿鏌熺€涙ê濮囧┑顕嗘嫹闂佸搫琚崕鍐诧耿閸涙潙缁╅柟顖滃椤ワ拷>>

正在阅读:C++ Builder 初学问与答(五)C++ Builder 初学问与答(五)

2004-07-28 10:12 出处:CSDN 作者:ch_builder 责任编辑:linjixiong

  38)问:事件OnChange和OnScorll都可以描述滚动条的滚动事件,他们有什么区别吗?

  答:事件OnChange和OnScorll是有区别的。只要属性Position的值发生改变,那么无论这个值是用户操作滚动条引起的还是通过程序修改的,都会产生OnChange事件。而OnScorll事件只有在用户操作滚动条时才发生。当用户操作滚动条时,首先发生OnScorll事件,然后OnChange事件才会发生。

  下面我们共同看一个程序来加深对滚动条的理解。

  在窗体上放置一个水平滚动条ScrollBar1和一个垂直滚动条ScrollBar2,以及一个记录滚动条事件的Memo组件。当用户操作滚动条时,在Memo组件中就会显示发生的事件。

  选择Memo组件,把它的ScrollBars属性设置为ssVertical。

  选择水平滚动条组件,双击OnScroll的Value域,系统将生成事件处理模板,输入这样一段代码。


void __fastcall TForm1::ScrollBar1Scroll(TObject *Sender,

      TScrollCode ScrollCode, int &ScrollPos)

{

AnsiString temp;

if(Sender==ScrollBar2)

temp="垂直滚动条的";

else

temp="水平滚动条的";

switch(ScrollCode)

{

       case scLineUp:temp+="scLineUp";break;

       case scLineDown:temp+="scLineDown";break;

       case scPageUp:temp+="scPageUp";break;

       case scPageDown:temp+="scPageDown";break;

       case scPosition:temp+="scPosition";break;

       case scTrack:temp+="scTrack";break;

       case scTop:temp+="scTop";break;

       case scBottom:temp+="scBottom";break;

       case scEndScroll:temp+="scEndScroll";break;

     default:

temp+="未知";break;

}

Memo1->Lines->Append(temp+"事件");
}

 


  系列文章索引:

  C++ Builder 初学问与答(一)
  C++ Builder 初学问与答(二)
  C++ Builder 初学问与答(三)
  C++ Builder 初学问与答(四)




察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品
闂佸綊娼ч鍡椻攦閳ь剟鎮规担鍛婂仴婵☆偓鎷�闂佹悶鍎抽崑娑㈠春鐏炰勘浜滈柛顐f礀閸旓拷