Delphi_01_控制台版HelloWorld
对于Windows下的控制台编程,我相信很多人都不陌生。而C语言开始的著名的“Hello world”程序基本是学习编程的第一步。我想对于
RAD开发,大家熟悉的一般都是GUI编程,而对于console的编程基本很少用到。其实对于Delphi而言,不但可以开发GUI程序,而且也可以
开发console程序。
为什么要提到控制台程序呢,因为通过控制台程序你可以清晰的了解到一种编程语言运行的基本原理。Delphi也开发一样,我们不单单是
要知道点几下鼠标就能设置图形界面,但是程序运行的过程和基本原理还是一知半解,说不懂也不是,说完全掌握也不是;因此这里我想开始
一系列Delphi的随笔记录,记录自己的学习历程。
以前也写过一段时间的Delphi随笔,但是没有坚持下去,这一次算是对自己一个严格要求吧,锻炼自己的恒心和毅力,决定写出一个完整的
系列文章,不再半途而废。因此将以前写的随笔全部备份,然后全部删除啦。以后打包给出一个链接吧,也许能帮助一些人,也许一点用没有,纯
粹浪费社会资源而已, 至于到底会怎么样,现在也不管啦,总之做就是啦................。
这里我们简单介绍一下怎样利用Delphi开发一个console程序。开篇之作就做以下基本的Delphi IDE的操作介绍,后面就不再做介绍啦。
这里的所有代码均基于Delphi 2010开始,后续的版本同样适用。
一、 建立控制台工程
1、建立工程, 打开Delphi IDE,然后如下图操作。
2、选择应用程序类型

如上图所示,选择 Console Application, 然后点击OK按钮。
3、出现如下IDE默认建立的应用程序模板

4、点击 Save 按钮,出现保持应用程序对话框,如下图所示

注意这里的名字,是应用程序的名字同时也是工程的名字, 这里修改后后,请注意IDE代码编辑器中的第一行代码的变化。
5、保存完后的项目/工程

6、到此一个简单的console应用程序工程已经建立完毕,只要一点调试工具按钮就可以看到一个一闪而过的命令行界面。
如果要看到运行的结果,请复制下面的代码到代码编辑窗口即可,具体内容在代码中会有解释。
二 修改后的控制台Hello World程序
{
Delphi版 Hello World
}
{
第一种注释风格 多行注释
}
(*
第二种注释风格 多行注释
*)
// C++注释风格, 单行注释
{ Delphi程序结构
1、Delphi程序由一个工程文件 *.dpr 文件 + 0个或多个单元文件 *.pas 文件组成
2、工程文件是Delphi程序执行的入口点
3、工程文件由以下几部分组成
程序头部分 program关键字
Uses子句部分 uses关键字
主程序块 begin与end关键字
4、IDE环境开发程序必须有一个工程文件,如果用命令行编译则不需要工程文件
5、工程文件用来组织所有相关的文件
6、工程文件的文件名将是可执行程序的文件名
}
{ 程序头
1、程序头指示程序的开始,程序头标识符就是程序名
2、程序头的定义方式为: program 程序头标识符
3、控制台程序的程序头标识符和工程文件 *.dpr 的文件名可以不一样,但是
GUI程序则必须一样
}
program HelloWorld; //指定程序名为 Helloworld
(* 编译指令
1、在Delphi程序中由编译指令来限定编译器的行为
2、编译指令通常由 {$ 和 } 符号对来表示
、下面的编译指令表示现在开发的是一个 控制台 程序
*)
{$APPTYPE CONSOLE}
{ uses子句
1、uses子句必须在program程序头后面,紧跟编译指令
2、uses子句表示在程序中要引用的单元文件,有点类似C语言中的#include指令
3、uses子句可以用 in 关键字, 具体例子后续介绍
4、uses子句的语法: uses
引用的单元文件名列表;
单元文件名列表用逗号 , 分隔,然后最后用分号结束 ;
}
uses
SysUtils;
{ 主程序块
1、主程序块用 begin 关键字标识,从 begin 开始,一直到 end. 结束
2、注意主程序块的结束标识是 end 关键字后面加上一个点号 . 且end和点号之间
不能有空白符号
3、程序的主要执行代码在主程序块中编写
4、程序的执行从主程序块 begin 关键字后的第一条语句开始,到 end. 结束
}
begin
{
下面用(* 和 *) 注释的内容是Delphi自动添加的代码,以后介绍
}
(*
try
{ TODO -oUser -cConsole Main : Insert code here }
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
*)
{
程序执行代码的开始
}
{
1、writeln过程相当于C语言中的printf()函数,用于输出信息
2、字符串字面值,在Delphi中利用双单引号表示
}
writeln('Hello world');
{
1、readln过程相当于C语言中的getch()函数,用于读取输入
2、readln读入的是字符流
}
readln;
{ 主程序块结束
1、end. 表示主程序块的结束
}
end.
后面系列文章除非常特殊的情况将不再对IDE环境进行说明。
本系列文章欢迎转载,转载请注明来源。
Delphi_01_控制台版HelloWorld的更多相关文章
- c/c++ 贪吃蛇控制台版
贪吃蛇控制台版(操作系统win7 64位:编译环境gcc, vs2017通过,其它环境未测试 不保证一定通过) 运行效果: #include <iomanip> #include < ...
- 基于TCP协议的聊天室控制台版
我之前写过一篇博客,主要是基于TCP协议实现的聊天室swing版,在此再写一个基于TCP协议实现的聊天室控制台版,便于学习和比较. package 聊天室console版.utils; import ...
- 2048 控制台版(C#)
开篇 2048游戏现在很火啊,很多人应该已经玩过了.在博客园上也看见有人模仿做的GDI+版 2048游戏,鄙人暂且不做那么多动画的东西,毕竟是个小东东,在此奉上一个<控制台版2048>. ...
- c++实现通讯录管理系统(控制台版)
c++实现通讯录管理系统(控制台版) 此项目适合c++初学者,针对c++基础知识,涉及到变量.结构体定义使用.数组定义使用.指针定义使用等. 运行之后的结果如下: 代码: #include <i ...
- 初学tornado之MVC版helloworld
作者:the5fire | 标签: MVC tornado | 发布:2012-08-06 2:41 p.m. 文接上篇,看我一个简单的helloworld,虽然觉得这个框架着实精小,但是实际开发 ...
- vc++2010如何新建项目并在控制台打印helloworld
关于写c++使用什么集成开发环境的问题其实挺纠结的.我找了好久找到codeblocks,发现这款IDE还是最适合用在最标准的c++语法环境中.其实先前装过vs2015旗舰版,但是这款软件太大了,非常消 ...
- Spring.DM版HelloWorld
本文主要描述使用Spring.DM2.0,创建OSGi的HelloWorld演示程序,理解Spring.DM的OSGi框架实现机制. 环境描述: 项目 版本 Eclipse 3.7.x JDK 1 ...
- Qt版helloworld
跟学别的编程语言一样,Qt也不例外,一开始就想写一个helloworld.初学Qt十几天,看了一点关于Qt视频的介绍和书上的基础知识,对于Qt写工程的概念有了初步的认识,就代码的形式来说,Qt Cre ...
- Java小例子(学习整理)-----学生管理系统-控制台版
1.功能介绍: 首先,这个小案例没有使用数据库,用集合的形式暂时保存数据,做测试! 功能: 增加学生信息 删除学生信息 修改学生信息 查询学生信息: 按照学号(精确查询) 按照姓名(模糊查询) 打 ...
随机推荐
- Linux服务器安全配置
众所周知,网络安全是一个非常重要的课题,而服务器是网络安全中最关键的环节.Linux被认为是一个比较安全的Internet服务器,作为一种开放源代码操作系统,一旦Linux系统中发现有安全漏洞,Int ...
- JavaScript中undefined与null的区别
通常情况下, 当我们试图访问某个不存在的或者没有赋值的变量时,就会得到一个undefined值.Javascript会自动将声明是没有进行初始化的变量设为undifined. 如果一个变量根本不存在会 ...
- mono ios莫名其妙闪退的解决方法
使用mono进行ios开发也有一年了,一直有个头疼的问题是闪退,而且闪退的时候并没有抛出明确的错误. 前两天在调试一个bug的时候,在序列化的时候又莫名其妙的闪退,后来在一位大神(博客地址)的指导下, ...
- ENode简介与各种教学视频资源汇总(要进群这篇文章必看)
ENode是什么 ENode是一个.NET平台开源的应用开发框架,为开发人员提供了一套完整的基于DDD+CQRS+ES+(in-memory)+EDA架构风格的解决方案. ENode的特色是什么 解决 ...
- windows phone如何才能在中国翻身?
最近的新闻告诉我们,Android和IOS的系统继续保持市场领先,并且Android的市场份额达到了历史最高点. 做为windows phone的消费者,作为微软粉丝,我感到十分的不爽. 前几天MIU ...
- With(ReadPast)就不会被阻塞吗?
在生产环境中,会有很多使用ReadPast查询提示的场合,来避免正在被其它事务锁定的行对当前查询造成阻塞,而又不会获取到“脏数据”. 可是很多人都疑惑,为什么我使用了ReadPast仍然有时会被阻塞? ...
- Atitit 硬件 软件 的开源工作 差异对比
Atitit 硬件 软件 的开源工作 差异对比 1.1. 模块化,标准化,以及修改的便捷性1 1.2. 生产和发布成本 1 1.3. 3. 入行门槛搞2 1.4. 在软件业极度发达的今天,任何具 ...
- redis的面试题
1:使用redis有哪些好处? (1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) (2) 支持丰富数据类型,支持string,lis ...
- FireFox调试手机浏览器
https://developer.mozilla.org/en-US/docs/Tools/Remote_Debugging/Firefox_for_Android IN THIS ARTICLE ...
- 通过Zabbix API实现对主机的增加(无主机资产的添加和带主机资产的添加)、删除、获取主机id、获取模板id、获取组id
config.yaml存储zabbix的信息(主要包括zabbix server的url .请求头部.登陆的用户名密码) Zabbix_Config: zabbix_url: http://192.1 ...