⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bcjq056.txt

📁 c++ builder 的一些txt文档
💻 TXT
字号:

C++ Builder开发者:程序员之家
var how_many_ads = 3;
var now = new Date()
var sec = now.getSeconds()
var ad = sec % how_many_ads;
ad +=1;
 
  
  
    
      
        
          
            首页   
              | 控件天堂 | 控件使用                    
              | 编程技巧                     
              |  源代码 |  编程工具 |         
               系统补丁 |  电子书籍 | 技术论坛                     
              |  相关链接                  
                            
                          
                        
                      
                      
                        
                          
                            
                              
                            
                  
       if (ad==1) {document.write(''+'');}                
       if (ad==2) {document.write(''+'');}                
       if (ad==3) {document.write(''+'');}                
                               
                            
                         
                                     
                         
                       
                     
                   
                   
                     
                       
                         
                           
                        
                      
var marqueecontents=''+scroll_text+''            
if (document.all)            
document.write(''+marqueecontents+'')            
function regenerate(){            
window.location.reload()            
}            
function regenerate2(){            
if (document.layers){            
setTimeout("window.onresize=regenerate",450)            
intializemarquee()            
}            
}            
function intializemarquee(){            
document.cmarquee01.document.cmarquee02.document.write(marqueecontents)            
document.cmarquee01.document.cmarquee02.document.close()            
thelength=document.cmarquee01.document.cmarquee02.document.height            
scrollit()            
}            
function scrollit(){            
if (document.cmarquee01.document.cmarquee02.top>=thelength*(-1)){            
document.cmarquee01.document.cmarquee02.top-=speed            
setTimeout("scrollit()",100)            
}            
else{            
document.cmarquee01.document.cmarquee02.top=marqueeheight            
scrollit()            
}            
}            
window.onload=regenerate2            
                        
                          
                        
                      
                    
                  
                  
                    
                      
                        
                          
                            
                              
                                
                  当前位置
     
     
                    编程技巧             
                             
                           
                         
                         
                         
                           
                             
                               
                    在C++Builder中实现动画         
                           
                     
                       
                         
                           
                          一、 直 接 使 用Animate 部 件 
      
----在 您 的 程 序 中 只 要 增  
      加 一 个Animate 部 件, 并 设 置 其 部 分 属 性 就 可 实  
      现 动 画, 但 缺 点 就 在 于Animate 部 件 只 能 打 开 已  
      有 的AVI 视 屏 文 件( 或 使 用Windows 公 用AVI), 有 一  
      定 的 系 统 开 销。 
      
----在 板2(Panel2) 中 加 入 一  
      个Animate 部 件 (Animate1), 我 们 设 置 其FileName 或CommonAVI  
      及Active 属 性 以 使 其 执 行 某AVI 视 屏 文 件 或Windows  
      公 用AVI。 设 置Animate1 的CommonAVI 属 性 值 为aviFindFolder,  
      它 将 执 行 我 们 常 见 的 在 搜 索 文 件 夹 过 程 中  
      的 搜 索 动 画。 
      
----为 控 制Animate1 的 动 作, 为  
      第 一 个 复 选 框 (CheckBox1) 的OnClick 事 件 增 加 代 码  
      如 下: 
      void  __fastcall  TDemoForm::
CheckBox1Click(TObject *Sender)
{
  Animate1 ->Active = CheckBox1 ->Checked;    
}
 
      二、 使 用Timer 部 件 定 时 绘 制 画 面 
      
----在C + +Builder 的System 标 签  
      中 有 一 个Timer 部 件, 使 用Timer 部 件 实 际 上 是 使  
      用Windows 定 时 器, 定 时 绘 制 部 分 画 面, 达 到 动  
      画 效 果。准 备 几 张 连 续 的Bmp 图 片。 
      
----Pic0.bmp Pic1.bmp Pic2.bmp Pic3.bmp  
      在 板3(Panel3) 中 加 入Image 部 件(Image1), 并 预 装  
      入 一 幅 图 片( 如: Pic3.bmp)。 
      
----为 在 程 序 中 存 储 这 些  
      图 片, 在 主 窗 体 的 头 文 件 中 增 加 变 量 定 义: 
      TPicture *pic[4];  //  存 储 图 片 的 指 针
int number;      //  记 录 当 前 图 片 序 号
 
      
----并 为 主 窗 口 的OnCreate 事  
      件 增 加 代 码, 在 程 序 主 窗 口 创 建 时 装 入 图  
      片, 即: 
      void  __fastcall  TDemoForm::FormCreate(TObject *Sender)
{
  number = 0;
  AnsiString Path = ExtractFilePath(Application ->ExeName);
  for(int i=0; i<4; i + +) { pic[i]="new" TPicture(); try { pic[i] ->LoadFromFile(Path +
                 “pic" +IntToStr(i) +“.bmp");
    }
    catch(...) {
       Application ->MessageBox
      (“\n 无 法 打 开 图 片 文 件...\t\n", 
    “ 错 误", MB_ICONWARNING|MB_OK);
    }  }
}
 
      
----增 加Timer 部 件(Timer1),  
      设 置 其 时 间 间 隔 Interval 属 性 为200 毫 秒; 另 外,  
      设 置Timer1 的Enabled 属 性 值 为false。 为 定 时 更 换 绘  
      制 图 片, 为Timer1 的OnTimer 事 件 增 加 代 码 如 下: 
      void  __fastcall  TDemoForm::
Timer1Timer(TObject *Sender)
{
  Image1 ->Canvas ->CopyRect
  (Image1 ->ClientRect,
    pic[number] ->Bitmap ->Canvas,
    Rect(0, 0, pic[number] ->Width,
      pic[number] ->Height));
  number + +;
  number %=4;    
}
 
      
----为 第 二 个 复 选 框(CheckBox2)  
      的OnClick 事 件 增 加 代 码 如 下, 以 控 制 动 画 的 执  
      行 与 停 止: 
      void  __fastcall  TDemoForm::CheckBox2Click
(TObject *Sender)
{
  Timer1 ->Enabled = CheckBox2 ->Checked;    
}
 
      
----使 用Timer 部 件, 定 时 绘  
      制 画 面 也 并 不 复 杂, 但 因 为 要 存 储 多 幅 图  
      片, 系 统 开 销 却 是 相 当 大 的, 但 其 动 画 效 果  
      却 也 相 当 好。 
      三、 利 用 程 序 空 闲 时 间 更 换/ 重 绘 画 面 
      
----OnIdle 事 件 是TApplication 类 的  
      事 件 之 一。 当 应 用 程 序 空 闲 时, 程 序 就 会 产  
      生OnIdle 事 件, 利 用 程 序 空 闲 执 行 动 画 不 是 很  
      妙 吗 ? 
      
----首 先 在 演 示 程 序 主 窗  
      体 的 第 四 个 板 (Panel4) 上 增 加 一 个 标 签(Lable1),  
      根 据 你 的 个 人 爱 好 设 置 其 Caption 及Font 等 属 性。  
      再 在 主 窗 体 的 类 定 义 中 增 加 一 个OnIdle 事 件 处  
      理 函 数, 它 像 普 通 函 数 一 样 定 义, 但 需 保 证  
      其 原 型 正 确。 我 们 定 义 的OnIdle 事 件 处 理 函 数  
      在 主 窗 体 的 头 文 件 中 作 如 下 申 明: 
      
----void __fastcall MyIdleHandler(TObject  
      *Sender, bool & Done); 
      
----其 完 整 代 码 为: 
      void __fastcall TDemoForm::MyIdleHandler
(TObject *Sender, bool &Done)
{
  int StartTime = GetTickCount();
  if(Label1 ->Top +Label1 ->Height>0) {
    Label1 ->Top - -;
  }
  else {
    Label1 ->Top = Panel4 ->Height;
  }
  while(GetTickCount() -StartTime <50); }  
        
      
----请 注 意, 为 避 免 移 动 标  
      签 速 度 过 快, 使 用 了 下 面 的 代 码 段: 
      int StartTime = GetTickCount();
...
while(GetTickCount() -StartTime <50);  
      
----它 保 证 了 动 画 的 时 间  
      间 隔 不 少 于50 毫 秒。 
      
----为 第 三 个 复 选 框(CheckBox3)  
      的OnClick 事 件 增 加 代 码 如 下: 
      void __fastcall TDemoForm::CheckBox3Click
(TObject *Sender)
{
  if(CheckBox3 ->Checked) {
    Application ->OnIdle = MyIdleHandler;
  }
  else {
    Application ->OnIdle = NULL;
  }
}
 
      
----为 保 证 程 序 执 行 的 安  
      全 性, 还 需 在 程 序 结 束 时 做 一 些 必 要 的 处  
      理( 如 释 放 程 序 运 行 过 程 中 分 配 的 空 间)。  
      为 主 窗 体 的OnDestroy 事 件 增 加 代 码 如 下: 
      void  __fastcall  TDemoForm::FormDestroy
(TObject *Sender)
{
  for(int i=0; i<4; i + +) { delete pic[i]; } Application ->OnIdle = NULL;
}        
      中 国 气 象 局 监 测 网 络 司信 息 网 络 处--夏  
      登 城      
                              
                            
                                
                        
                              
                                
                              
                  if (ad==1) {document.write(''+'');}              
                  if (ad==2) {document.write(''+'');}              
                  if (ad==3) {document.write(''+'');}              
                                                
                              
                            
                          
                        
                   
                    
                      
                        
                      
                      
                          
                      
                    
                       
                     
                   
                 
               
               
                 
                   
                     
                       
            C++ Builder开发者®            
              2000年06月01日 站长:唐朝            
                      
                    
                  
                
                
                  
                
              
              
            
            
            
            

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -