Delphi-8.0简介_第1页
Delphi-8.0简介_第2页
Delphi-8.0简介_第3页
Delphi-8.0简介_第4页
Delphi-8.0简介_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

1、第第1章章 Delphi 8.0简介简介1.1 Delphi 8.0的安装与特性的安装与特性1.2 Delphi 8.0的集成开发环境的集成开发环境1.3 Delphi 8.0应用程序应用程序1.4 程序的编译调试和打包程序的编译调试和打包1.5 实例实例“我喜欢我喜欢Delphi”1.6 小结小结习题一习题一1.1 Delphi 8.0的安装与特性Delphi 8.0的问世得到广大Delphi程序员的认可和赞同,它以简单的设计和可视化的开发技术受到广大程序员的青睐。随着编程的深入,Delphi编程不再是一项枯燥无味的工作Delphi的每一步设计,都将带给用户一份惊喜。1.1.1 Delphi

2、 8.0的安装的安装Delphi 8.0的安装比较简单,与安装普通的应用软件相似,但它需要在.NET环境中运行。下面简单介绍Delphi 8.0的安装流程。1Delphi 8.0的安装环境安装环境分为硬件环境和软件环境。安装环境决定着Delphi运行的好坏及稳定性,一个良好的安装环境可以使Delphi能够稳定地运行。(1)硬件环境: 1)最低硬件环境:CPU 433 MB,硬盘1 GB,内存32 MB。 2)推荐硬件环境:CPU 1.3 GB,硬盘40 GB,内存128 MB。(2)软件环境:操作系统Windows 98,Windows Me,Windows 2000或者Windows XP,

3、并安装IE 6.0以上的浏览器以及.NET Framework SDK Version 1.1,Microsoft .NET Framework Version 1.1和Microsoft Visual J# .NET Version 1.1插件。如果没有安装后3个插件,Delphi 8.0的光盘中必须配有这3个插件。2Delphi 8.0的安装步骤下面以Windows XP系统、Delphi 8.0设计师版本为例来介绍Delphi 8.0的安装过程。(1)插入Delphi 8.0光盘,打开“Borland Delphi 8.0设计师版”文件夹,找到“setup”所在的文件夹并双击,弹出欢迎安

4、装Delphi 8.0对话框,如图1.1.1所示。由于安装Delphi 8.0的步骤很多,下面只对几个重要的步骤加以说明。图1.1.1 “欢迎安装Delphi 8.0”对话框(2)单击“Next”按钮,弹出软件安装协议询问对话框,选中“I accept the terms in the license agreement”单选按钮,如图1.1.2所示。图1.1.2 “软件安装协议询问”对话框(3)单击“Next”按钮,在弹出的对话框中输入用户信息。在对应的文本框中输入用户名和组织名(可以输入任意字母),如图1.1.3所示。(4)输入用户信息后,单击“Next”按钮,弹出选择安装类型对话框,如图

5、1.1.4所示。在该对话框中有两个单选按钮。 1)“Complete”(完全安装):安装Delphi 8.0的全部内容,建议用户及初学者选用此单选按钮。 2)“Custom”(自定义安装):根据用户的需要来选择Delphi 8.0的安装部分,它适用于高级用户安装。下面以完全安装为例讲述Delphi 8.0的安装过程。图1.1.3 输入用户信息图1.1.4 “选择安装类型”对话框(5)单击“Next”按钮,弹出选择安装路径对话框,如图1.1.5所示。单击“Change”按钮,可以选择其他路径。图1.1.5 “选择安装路径”对话框(6)单击“Next”按钮,在弹出的对话框中选择默认选项,最后单击“

6、Install”按钮,打开如图1.1.6所示的正在安装窗口。即开始复制文件,并显示安装进度。经过一段时间后,完成安装,如图1.1.7所示。图1.1.6 正在安装Delphi 8.0图1.1.7 安装完成1.1.2 Delphi 8.0的新界面的新界面Delphi 8.0是在Delphi 7.0的基础上又增强了一些新功能,使Delphi的功能更加完善。 Delphi 8.0与Delphi 7.0的界面略有不同,但也是由菜单栏、工具栏、属性窗口、事件窗口、设计窗口、代码窗口和组件面板等组成的,其界面比Delphi 7.0更加人性化。属性窗口、事件窗口和组件面板类似于Windows XP的界面,其组

7、件面板在设计窗口的右边并可以自由地调整其大小和位置。这种结构可以使属性窗口和事件窗口变大。1属性窗口和事件窗口的改变与Delphi 7.0相比,Delphi 8.0的属性窗口和事件窗口打破了传统的Delphi 7.0的属性和事件按英文字母排序的界面,而是默认先分类再按英文字母排序,这有利于程序员找出所需要的属性,操作更加方便快捷。2组件面板的改变组件面板不但位置发生了改变,而且使用方式也略有不同。Delphi 7.0以选项卡的形式显示,而Delphi 8.0以下拉列表的形式显示,即单击“Categories”按钮,弹出的下拉列表中有“Standard”,“Additional”,“Win32”

8、和“System”等。1.1.3 Delphi 8.0的新功能的新功能Delphi 8.0除了具有Delphi 7.0的功能外,还增加了许多新功能。如全新的ADO.NET数据库功能,创建和部署ASP.NET应用程序。并对语法进行了修改,如PChar类型已经被取消,而用String代替。1.2 Delphi 8.0的集成开发环境集成开发环境IDE(Integrated Development Environment)包括调试器和编辑器,它是生成应用程序的最基本的需要。Delphi 8.0的集成开发环境包括主窗口、窗体设计器、代码编辑器、代码浏览器、项目管理器和对象监视器等。1.2.1 集成开发环

9、境简介集成开发环境简介Delphi 8.0的集成开发环境及主窗口如图1.2.1所示。其中代码编辑器和代码浏览器处于隐藏状态,如果按“F12”键即可看到窗体设计器被隐藏,而代码编辑器出现在窗体设计器的位置;可以通过鼠标右键单击“窗口设计”标签“Unit1”,在弹出的快捷菜单中选择“View Explorer ”命令,代码浏览器即可出现在左侧的对象监视器位置。当用户在窗体设计器中设计窗体时,Delphi 8.0自动生成窗体代码,不需要用户编写,这减轻了用户编程的工作量,用户只须设计界面,并在按钮的事件中添加一些代码,即可完成开发的项目。图1.2.1 Delphi 8.0的集成开发环境及主窗口1.2

10、.2 菜单栏功能简介菜单栏功能简介菜单栏位于标题栏的下方,它提供了程序开发的所有功能及命令。Delphi 8.0的主菜单共有11项,其菜单名及主要功能如表1.1所示。表1.1 菜单名及主要功能1.2.3 工具栏工具栏工具栏是由菜单中一些常用命令组成的,Delphi 8.0默认显示的工具栏有Standard,View,Debug,Custom和Desktop等。工具栏中的按钮名称和主要功能如表1.2所示。表1.2 按钮名称和主要功能提示:在保存一个项目时,至少要保存两个文件:一个是项目文件(*.dpr);另一个是单元文件(*.pas)。在保存文件时,最好单击工具栏中的“保存所有文件”按钮,以便保

11、存所有文件。1.2.4 窗体设计器(窗体设计器(Form)窗体设计器简称窗体,在屏幕中最大面积显示的部分是窗体设计器。Delphi 8.0与Delphi 7.0的窗体设计器不同,Delphi 8.0的窗体设计器是以标签的方式显示的,有利于单元之间的切换。窗体设计器用于设计应用程序的用户界面。在未放入组件前,编译运行后窗体是一个空白窗口。可在该窗体中添加一些组件,其操作方法是单击“组件面板(Tool Palette)”中的“Categories”按钮,弹出其下拉列表,如图1.2.2所示。选择所需要的组件,如选择“Standard”选项,在弹出的下拉列表中,单击如标签、按钮等组件,然后在窗体适当的

12、位置单击鼠标左键,在单击的位置即可显示该组件,并可以用鼠标来调节组件的大小及位置,在对象监视器的属性选项卡中改变其属性值。提示:窗体与窗口属于同一对象,只是在设计时称为窗体,运行时称为窗口。1.2.5 对象监视器(对象监视器(Object Inspector)在Delphi程序开发中对象监视器是最常用的工具,利用它可以方便地修改窗体和组件的属性。对象监视器包括属性选项卡和事件选项卡。图1.2.2 “Categories”下拉列表(1)属性选项卡(Property):用于显示对象的属性信息或修改对象的属性。窗体和组件的属性一般包括颜色、字体、大小、位置等。这些属性可以在对象监视器中直接设置,也可

13、以在窗体的事件中编写代码。例如,给窗体命名“欢迎界面”。可以直接在属性中设置;也可以在事件中添加代码,添加代码的方法将在本节的事件中介绍。在对象监视器中可以通过以下4种方法设置属性。 1)直接输入法。某些属性是直接输入字符或数字,如Caption,Name,Height,Left,Top和Width等。对这些属性的设置可以单击属性左侧的属性名,右侧则显示闪烁的插入点,在插入点位置输入文字或数字即可。 2)通过对话框设置法。单击某些属性名,在其右侧显示按钮,单击按钮,在弹出的对话框中选择所需要的属性即可。 3)下拉列表选择法。单击某些属性名,在其右侧显示按钮,单击按钮,在弹出的下拉列表中选择其中

14、一个选项。如单击属性Enabled则显示,在其下拉列表中选择True或False属性值。 4)子属性法。某些属性还包含许多子属性,左侧带有的属性表示具有子属性,单击可以展开其子属性,此时变为,表示子属性已经展开,可以在子属性中设置所需要的属性。(2)事件选项卡(Event):显示对象可以响应的事件。如鼠标的单击、双击、窗口的显示、关闭都属于组件事件。常用的按钮“Button”事件有单击“OnClick”、鼠标的移动“OnMouseMove”和按下键“OnKeyDown”等。事件的使用要先打开“事件”选项卡,然后双击事件“OnClick”右侧的空白位置打开代码编辑器,可以在“Begin”,“En

15、d”之间添加代码。使用事件的方式来实现属性选项卡窗体命名“欢迎界面”的方法是双击事件“OnShow”右侧的空白位置,打开代码编辑器,在“Begin”和“End”之间添加如下代码:form1.Caption :=欢迎界面;提示:代码的编写不区分字母的大小写。1.2.6 代码编辑器(代码编辑器(Code Editor)(1)代码编辑器的简介。代码编辑器用来编写代码,它是以单元为单位显示的,每一个单元文件占用一个代码编辑器。在编写代码时,遇到标识符“.”代码编辑器自动弹出下拉列表的提示,如图1.2.3所示。图1.2.3 代码下拉列表的提示(2)单元文件代码的组成。单元文件代码由4部分组成,即单元名部

16、分、接口部分、实现部分和初始化部分。单元文件代码各部分的解释,如表1.3所示。注意:单元名和单元文件必须一致。尽量不要改动或者随意改动系统生成的源代码,否则容易出现错误。表1.3 单元文件代码各部分的解释例如:Delphi自动生成单元文件Unit1。程序代码如下:unit Unit1;/单元名interface/接口部分uses/系统使用的单元 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;Type/类型定义 TForm1 = class(TForm)/窗体 Button1:

17、 TButton;/按钮 Label1: TLabel;/标签 Edit1: TEdit;/编辑框 procedure FormCreate(Sender: TObject);/窗体创建事件 procedure Button1Click(Sender: TObject);/按钮单击事件 Private/定义私有变量及过程 Private declarations /专用说明 Public/定义公有变量 Public declarations /公用说明 end;var/定义程序中所使用的变量 Form1: TForm1;Implementation/程序实现部分$R *.nfm /编辑命令pr

18、ocedure TForm1.Button1Click(Sender: TObject);/按钮的单击事件begin /程序段的开始 close; /关闭窗体end; /程序段的结束end. /程序结束1.2.7 代码浏览器(代码浏览器(Exploring)代码浏览器以树型视图的形式浏览程序代码。所浏览的代码是代码编辑器中的程序,通过代码浏览器可以方便快捷地查看和修改程序代码。使用方法是双击树型标签直接定位到对应的代码处。1.2.8 组件面板(组件面板(Tool Palette)组件面板在设计窗体界面时使用,设计窗体界面的组件都可以在组件面板中找到。组件面板中常见的组件有标签、按钮、编辑框和下

19、拉列表框等。1.3 Delphi 8.0应用程序在Delphi 8.0中,常见的应用程序有3种,即VCL表单应用程序、Windows表单应用程序和ASP.NET应用程序。1.3.1 VCL表单应用程序表单应用程序VCL表单应用程序(VCL Forms Application)中VCL(可视类库)一直是Delphi各个版本中最优秀的技术,它利用组件封装大量底层的系统API,使编程变得更加容易。选择“File”“New”“Other”命令,弹出“New Items”对话框,选择左侧树型列表中“Delphi for .NET Projects”选项,如图1.3.1所示。选择右侧的“VCL Forms

20、 Application”图标,单击“OK”按钮,即可新建VCL表单应用程序。图1.3.1 “New Items”对话框1.3.2 Windows表单应用程序表单应用程序Windows表单应用程序(Windows Forms Application)和VCL表单应用程序有许多类似之处,两者都是用于创建Win32程序的组件技术。但是由于Delphi的VCL技术非常成熟,所以在开发Win32程序时,一般使用VCL表单应用程序。Windows表单应用程序更接近于微软的产品,但是开发过程中的语法和函数与Delphi有些不同。选择“New Items”对话框(见图1.3.1)右侧的“Windows Fo

21、rms Application”图标,单击“OK”按钮,即可新建Windows表单应用程序。1.3.3 ASP.NET应用程序应用程序在ASP.NET应用程序(ASP.NET Web Application)中,ASP.NET是统一的Web开发平台,用来提供生成企业级Web应用程序所需要的服务。目前ASP.NET Application的理想语言是C#,但是随着Delphi 8.0的发布,可以使用Object Pascal语言来开发ASP.NET应用程序。选择“File”“New”“ASP NET Web Application”命令,即可新建ASP.NET应用程序。1.4 程序的编译调试和打

22、包错误的程序代码将导致程序不能运行,尽管编写程序代码时很仔细,但错误是不可避免的,如漏写分号,保留字使用错误等,这些都使程序不能运行。能找出错误并修改错误在编写程序时是非常重要的。1.4.1 程序的编译程序的编译程序的编译可以使用两种方法:(1)选择“Project”“Compile Project1”命令。该方法用于编译当前项目中所有自上次生成执行文件后修改过的文件。(2)选择“Project”“Build Project1”命令。该方法用于编译当前项目中所有的文件,而不管该文件是否被修改,并生成可执行文件。1.4.2 程序的调试程序的调试Delphi中的IDE集成了一个功能强大的调试器。打

23、开该调试器的方法是选择Desktop工具栏下拉列表中的“Debug Layout”选项。调试程序的控制方法有跟踪法、运行到光标位置法、步进法、暂停法和运行到断点法等。1跟踪法单击Debug工具栏中的“Trace Into”按钮或者选择“Run”“Trace Into”命令,即可执行跟踪法。2运行到光标位置法选择“Run”“Run to Cursor”命令,可以执行运行到光标位置法。3步进法单击Debug工具栏中的“Step Over”按钮或者选择“Run”“Step Over”命令,可以执行步进法。4暂停法选择“Run”“Program Pause”命令,可以执行暂停法。5运行到断点法在程序中

24、设置断点并正常运行程序。运行到断点法将在下面的内容中详细介绍。1.4.3 断点法断点法程序设置断点在程序调试过程中非常重要。断点是指程序正常运行到某一个确定的程序代码位置,该位置由断点来确定。当程序运行到该语句时,便进入调试状态。1断点的设置断点可以设置一个也可以设置多个,设置断点的方法有以下4种:(1)单击代码行左侧的空白处。(2)按“F5”键,将光标闪烁行设置为断点行。(3)选择“Run”“Add Breakpoint”“Source Breakpoint”命令,弹出“Add Source Breakpoint”对话框,如图1.4.1所示。图1.4.1 “Add Source Breakp

25、oint”对话框在该对话框中,可以添加断点,还可以设置断点的属性。(4)用鼠标右键单击代码编辑器,在弹出的快捷菜单中选择“Debug”“Toggle Breakpoint”命令。注意:断点必须设置在可执行的代码行中,在注释行、空白行和变量声明行中设置的断点都是无效的。断点可以在设计时设置,也可以在运行过程中调试时设置。2断点的操作设置断点后可以在断点列表框中列出所有的断点所在的源文件名、行号、条件和通过的次数,如图1.4.2所示。图1.4.2 断点列表框断点列表框的作用如下:(1)可以快速地找到断点程序代码的位置。(2)编辑程序代码。(3)断点功能的丧失和恢复。(4)断点的删除。利用设置断点可

26、以查看变量值,当程序运行到断点位置时,系统自动切换到调试状态下,移动鼠标指针到变量位置停留片刻,即可显示程序运行到该位置的变量值,提示方式为一个黄色的标签。例1.1 断点调试实例。(1)新建一个控制台应用程序。选择“File”“New”“Other”命令,弹出“New Items”对话框,选择左侧树型列表中“Delphi for .NET Projects”选项,右侧显示如图1.4.3所示。选择右侧的图标,单击“OK”按钮,即可新建控制台应用程序。图1.4.3 “New Items”对话框(2)编写程序代码如下:program Project1;$APPTYPE CONSOLEuses Sys

27、Utils;var i,j,k:integer;begin i:=3; j:=5; k:=i*j; write(k); readln;end.(3)添加断点。在语句write(k);中添加断点。(4)运行并调试程序。当程序运行到断点位置,系统自动切换到调试状态下。移动鼠标指针到变量k位置则显示变量k值的黄色标签,如图1.4.4所示。图1.4.4 变量值提示还可以选择“View”“Debug Windows”“Watches”命令,弹出“Watch List”对话框,将变量j拖到该对话框中,运行程序则显示变量j的值,如图1.4.5所示。图1.4.5 “Watch List”对话框变量值提示对程序

28、的调试具有很大作用。使用断点设置查看变量的运行值,可以很容易地判断错误和排除错误。1.4.4 制作安装包制作安装包在完成应用程序的设计后,一般地要将最终的产品打包后发给用户使用,目前安装盘的制作一般使用InstallShield工具来完成。在Delphi 8.0中没有打包工具,需要到网站上下载InstallShield工具。InstallShield是制作软件安装最好的工具。它具有简单的操作、完全可视化的界面、方便的调试功能及多平台(Windows 98, Windows XP,Windows NT3.5,Windows NT4.0)和多语言(中文、各种西文)的支持,它几乎是安装制作的标准。微

29、软的产品Visual C+ 4.X中以捆绑的形式包括InstallShield 3。目前,InstallShield功能更加完善,又陆续推出了InstallShield Professional 5.X(包括East Edition,West Edition)和InstallShield 6.0,功能更强大、操作更简便。1.5 实例“我喜欢Delphi”本节以一个简单实例来演示Delphi 8.0编程的整个过程。该实例具有两个窗体,一个是主窗体,该窗体中有“请点击”按钮和“退出”按钮两个按钮以及一个“我的第一个Delphi程序”标签,其中一个按钮的功能是退出,另一个按钮的功能是单击该按钮后弹出

30、第二个窗体;另一个窗体即第二个窗体,该窗体中有一个“退出”按钮和一个“我喜欢Delphi”标签,其中该按钮的功能是退出。1.5.1 启动启动Delphi 8.0Delphi 8.0的启动方式有两种,选择“开始”“程序”“Borland Delphi8”“Delphi8”命令或者双击桌面上Delphi 8.0的快捷图标。1.5.2 创建创建VCL项目项目启动Delphi 8.0弹出欢迎界面,然后创建项目,可以使用菜单创建,也可以使用工具栏创建。下面以使用工具栏创建项目为例,讲述项目的创建过程。单击工具栏上的“新建”按钮,弹出“New Items”对话框。在该对话框左侧树型列表中选择“Delphi

31、 for .NET Projects”选项,如图1.5.1所示。双击“VCL Forms Application”图标或者选中“VCL Forms Application”图标并单击“OK”按钮,即可创建VCL项目。在默认情况下,它可以同时创建一个窗体。图1.5.1 “New Items”对话框1.5.3 第二个窗体的创建第二个窗体的创建第二个窗体可以在第一个窗体添加组件后创建,也可以先创建。第一个窗体是用工具栏创建的,现在使用菜单命令来创建第二个窗体。选择“File”“New”“VCL Forms Application”命令,即可创建第二个窗体Form2。1.5.4 给窗体添加组件给窗体添

32、加组件创建窗体后就可以给窗体添加相应的组件。1给窗体Form1添加组件首先给第一个窗体Form1添加两个按钮,单击“窗口设计”标签“Unit1”,使窗体Form1处于当前状态。在组件面板中选择TButton组件,单击TButton组件并在窗体的适当位置单击鼠标左键,则按钮显示在单击的位置。同样再添加一个TButton按钮和一个标签,标签是用来在窗体上显示文字的组件。组件命名的方式是系统自动在组件名的后面加1,如Button1,Button2,效果如图1.5.2所示。2给窗体Form2添加组件与窗体Form1添加组件的方法类似,添加窗体Form2的组件,效果如图1.5.3所示。图1.5.2 添加

33、组件后的窗体Form1 图1.5.3 添加组件后的窗体Form21.5.5 设置窗体设置窗体Form1、窗体、窗体Form2的属性的属性添加组件后就可以设置窗体和组件的属性。1窗体Form1的属性设置窗体Form1所要设置属性的组件有Button1,Button2,Label1。(1)界面的安排。首先把Button1和Button2对齐,再把Label1设置到窗体的中间位置,使界面尽可能的美观。可以通过鼠标的拖动来调节其组件的位置和大小,还可以使用键盘光标键来调节其位置大小。键盘光标键及功能如表1.4所示。表1.4 键盘光标键及功能(2)属性选项卡的使用。属性选项卡中具有许多组件属性,其中有些

34、不常用,用户只须记住一些常用的组件属性即可。使Button1处于选中状态(Button1周围有8个小黑矩形方框),在属性选项卡中选择“Caption”选项,修改Button1的显示名称为“请点击”。同样把Button2和Lable1的Caption的显示名称进行修改。窗体Form1属性设置如表1.5所示。窗体Form1属性设置后的界面如图1.5.4所示。图1.5.4 窗体Form1界面表1.5 窗体Form1属性设置2窗体Form2的属性设置窗体Form2的属性设置和设置窗体Form1的属性类似,窗体Form2的属性设置如表1.6所示。窗体Form2属性设置后的界面如1.5.5所示。图1.5.

35、5 窗体Form2界面表1.6 窗体Form2属性设置1.5.6 编写程序代码编写程序代码编写程序代码是整个应用程序开发中的重点。1在事件中编写程序用户界面设计完成后进行程序代码的编写。程序代码要在代码编辑器中编写,而代码的运行要在某一事件中执行。首先编写Button2组件(退出按钮)中单击事件的代码,其操作方法是双击Button2组件,打开的代码编辑器出现在窗体设计器的位置,且光标在代码编辑器中闪烁,在光标位置即可编写程序代码,直接输入如下代码:close;其功能是单击该按钮,关闭窗体。同样,双击Button1输入如下代码:form2.show;2单元的引用在窗体Form1中引用窗体Form2,引用的方法是选择“File”“Use Unit”命令,弹出“Use Unit”对话框,如图1.5.6所示。因为单元只有两个,所以默认的是窗体Form2,单击“OK”按钮,即可完成对单元Unit 2的引用。也可以在代码编辑器中implementation后面输入如下代码:uses Unit2;同样,窗体Form2中也有一个按钮单击事件,即退出按钮。编写程序代码后,再次打开窗体Form1的代码编辑器,显示如下代码:图1.5.6 “Use Unit”对话框implementation /程序实现部分uses Unit

温馨提示

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

评论

0/150

提交评论