Delphi如何使用全局变量.doc_第1页
Delphi如何使用全局变量.doc_第2页
Delphi如何使用全局变量.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DELPHI怎样定义全局变量1、方法一:Delphi也有全局变量。一种办法是选择菜单的Project source项,这时代码窗口会出现Program等内容,在这部分定义的变量就是全局变量,但除了DLL项目以外,Delphi程序员很少使用这种方式。更常见的办法是在单元(unit)中的interface部分定义变量供其它单元使用,这部分变量也是全局变量。其它单元使用时只要在uses部分加上要引用单元就可以。2、方法二:直接在IMPLEMETION下面定义VAR G_varial: INTEGER不过需要引用它,必须要USE它所在的那个单元3、方法三:设置成全局变量 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private Private declarations public Public declarations end; var Form1: TForm1; /在这里设4、方法四:unit1中引用unit2的edit1中的文本 unit1中加入 uses unit2 在代码中就可以 procedure TForm1.Button1Click(Sender: TObject); begin showmessage(Form2.edit1.text); end;用Delphi7.0开发DirectX游戏这不是一篇关于DirectX的祥细教程,而是讲解如何用DELPHI开发DirectX游戏.因为不管是网上或是书店,关于DirectX的书基本上是用C+或VC描述的.用DELPHI开发游戏的资料是少之又少,这篇文章的目的就是让读者能够学会如何利用已有的资料学习来开发游戏. 这篇文章面向的是对DirectX有一定了解,却不知道如何在DELPHI下开发DirectX游戏的读者.DELPHI能不能开发游戏?回答是当然,网上很多游戏论坛有不少人都认为开发游戏只能用C+或VC. DELPHI只适合来做做桌面应用,劝有这些观点的人先反汇编看看DELPHI和VC编释出来的代码,或是看看奇迹时代这个游戏,奇迹时代就是用DELPHI开发的,速度和画面优于帝国时代.DELPHI是完全面向对象,并能内嵌汇编,支持MMX指今(DELPHI中MMX寄存器为mm0-mm7).完全适合游戏开发的需要.其实不论VC,DELPHI都只是工具,只要内功好都能做出来好的程序或是游戏.调试经验:开发全屏游戏时最好把设计时的屏幕分辩率设为和游戏一样的分辩率,以免调试时频繁切换分辩率而损伤屏幕.开发全屏游戏最好是在WIN2000/XP下,不然在98下调试时游戏进入死循环或产生异常时.机子很容易就会当掉.在2000/XP下全屏游戏进入死循环时可以按ALT+TAB切换到DELPHI中(但这时由于DirectX游戏是全屏,独占了屏幕,屏幕上不会有变化,所以要多试几次),按CTRL+F2就可以结束游戏.如果是异常的话,切换到DELPHI中先按下回车再按CTRL+F2就可以结束调试游戏了.注意: 如果你是使用DELPHI7的话,请把DirectDraw.pas中的145行$IFDEF VER140改为$IFDEF VER150才能正常编释. 最好使用API的方式来建立游戏主窗口而不是使用VCL的TFORM类.先让我们来看看用C+和DELPHI初始化DirectDraw对像的代码段.c+版:BOOL InitDDraw( ) LPDIRECTDRAW7 lpDD; / DirectDraw对象的指针 if ( DirectDrawCreateEx (NULL, (void *)&lpDD, IID_IDirectDraw7, NULL) != DD_OK ) return FALSE; 创建DirectDraw对象 里使用了 if ( xxx != DD_OK) 的方法进行错误检测,这是最常用的方法 if (lpDD-SetCooperativeLevel(hwnd,DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN) != DD_OK ) return FALSE; 设置DirectDraw控制级 if ( lpDD-SetDisplayMode( 640, 480, 32, 0, DDSDM_STANDARDVGAMODE ) != DD_OK ) return FALSE; 置显示模式DELPHI版:function TForm1.InitDirectDraw: Boolean;var lpDD: IDirectDraw7;begin Result := False; 先假设初始化失败 建立DirectDraw对象 if DirectDrawCreateEx(nil, lpDD, IID_IDIRECTDRAW7, nil) DD_OK then exit; 设定DirectDraw的控制级,第一个参数为DirectDraw窗口的句柄,这里把控级级设为的全屏加独占模式 if lpDD.SetCooperativeLevel(Hwnd, DDSCL_EXCLUSIVE or DDSCL_FULLSCREEN) DD_OK then exit; 设定显示模式,第一,二个参数为分辩率大小,第三个参数用来设置显示模式的颜色位数, 第四个参数设定屏幕的刷新率,0为默认值,第四个参数唯一有效的值只有DDSDM_STANDARDVGAMODE if lpDD.SetDisplayMode(640, 480, 32, 0, DDSDM_STANDARDVGAMODE) DD_OK then exit; Result := True;end;可以看出来,这二段代码除了语法和对象名外完全一样,只要了解了这点,我们完全可以参考VC或C+的资料,然后用DELPHI做出自己的游戏了.DELPHI中DirectX声明中的对象名,结构名和VC不一样,一般的对应关系如下:DELPHI VCDirectDraw对象 IDirectDraw7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论