`
美丽的小岛
  • 浏览: 306267 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

学习PASCAL小记(一)

阅读更多

最近学上了PASCAL,以前一直觉得应用程序没有什么用处了的了,特别是像DELPHI的界面那些东西。以前一直用的JAVAJSP什么的,觉得网页很好,也很直观什么的,客户端多爽,java又有这么多的架构什么的,还是免费的。当公司要我们学习delphi开始,我在想这么一个问题,学习这个有用吗?这个东西都过了这么多年的了,过时了有用吗?

当我踏入去的第一步,我的想法改变了,挺喜欢那种感觉,一般的时候我总想挑战自己,去学习一些之前我没有学习过的东西。此次也不例外,开始了挑战自己的学习方法论。

第一个例子,记事本。这个还真没有给我带来多少挑战,以前学习过VB,那个思想还没有忘记。很快就过去了。新的发现为,delphi里面有很多控件,全都是封装好的,我很喜欢,不用去考虑他们的实现细节,一拉一拖完成了记事本。在打开与保存的那里的确遇到了问题。我让同学给我测试,自己开发的东西,无论怎样也没有发现会出现这种或那种的错误。我耐心去修改每个考虑不周的的问题,完善自己的程序。发觉我在对待这个问题上我成熟了很多。很久以前我不喜欢听到这样的说,可是现在我变得很喜欢听到这样的话,因为这样我会进步一大步的。

第二个例子,我做了一个八皇后问题的界面展示。

 做的过程中,让我很烦恼,不是来自八皇后的算法,是来自界面的绘画。Canvas,这个东西,我找了它很久,看了一本书,由于看得快,没有理解这个东西,它究竟是一个什么东西来的,以为是一个可可视控件类。在那个工具栏中找呀找呀,最后还是没有找到它。很着急也很苦恼,上天就是用Canvas来的惩罚我来了,从晚上8点弄到11点,就是为了找到它。后来,偶然发现,它是很多控件的属性,天呀!!!!很多组件都有这个属性,有了Canvas就可以用它来画图了。最后终于画出来了一个格子。对于canvas中,还有各种设置什么的,就用一个叫pen的东西的来设置,这段代码一辈子都记得它,让我多么的苦恼呀。

procedure TMainFrm.DrawTable;

var

  localStep,j,step:integer;

begin

  step := 50 ;

  MainFrm.PaintBox1.canvas.pen.width:=2;

  MainFrm.PaintBox1.canvas.pen.color:=clred;

  localStep := 20 ;

     for j:=0 to 8 do

     begin

       MainFrm.PaintBox1.canvas.moveto(20,localStep);

       MainFrm.PaintBox1.canvas.lineto(420,localStep);

       localStep := localStep + step ;

    end;

    localStep := 20 ;

    for j:=0 to 8 do

     begin

          MainFrm.PaintBox1.canvas.moveto(localStep,20);

          MainFrm.PaintBox1.canvas.lineto(localStep ,420);

          localStep := localStep + step ;

    end;

end;

接下来的一步就是多线程了,一边查一边学,delphi的多线程就是麻烦,总是说我的内存有问题,嘻嘻,其实我没有用好,特意做了一个多线程的例子去研究了一下。

unit Main;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, TSTTRD;

type

  TForm1 = class(TForm)

    Edit1: TEdit;

    Edit2: TEdit;

    Button1: TButton;

    Button2: TButton;

    procedure Button2Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

implementation

{$R *.dfm}

var

   newThread: TTstthread;

procedure TForm1.Button1Click(Sender: TObject);

begin

        newThread := TTstThread.Create(False);

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

   newThread.Resume ;

end;

end.

线程类:

unit TSTTRD;

interface

uses

  Classes;

type

  TTstThread = class(TThread)

  private

    protected

    procedure Execute; override;

  end;

implementation

uses SysUtils, Main;

procedure TTstThread.Execute;

var

  i: integer;

begin

  for i := 0 to 2000000 do

  begin

    Form1.Edit1.Text := IntToStr(i);

    Form1.Edit2.Text := IntToStr(self.ReturnValue)  ;

    self.Suspend ;

  end;

end;

end.

另外有一个不得不提一下,就是图片的加载与显示:

procedure  TMainFrm.DrawQueenPicture(ALocalX : Integer; ALocalY : Integer);

var

    queenMap:tbitmap;

begin

    queenMap:=tbitmap.Create;

    queenMap.loadfromfile('d:\queen.bmp');

    MainFrm.paintbox1.canvas.Draw(ALocalX, ALocalY, queenMap);

    queenMap.Free ;

end;//procedure end

2
1
分享到:
评论
2 楼 美丽的小岛 2013-03-21  
kidneyball 写道
LZ用delphi哪个版本?

刚开始用过delphi0.7,不太好用。现在用2007.
1 楼 kidneyball 2013-03-21  
LZ用delphi哪个版本?

相关推荐

    pascal的学习必备

    **Pascal语言学习指南** Pascal,一种结构化编程语言,由Niklaus Wirth于1968年设计,自那时起,它已经成为计算机科学教育的重要组成部分,特别是在初学者和信息学竞赛中。"全国青少年信息学奥赛培训教程 PASCAL...

    从浅入深学习pascal编程技术(全27).rar

    Pascal是一种结构化编程语言,它的设计目标是提高代码的清晰性和可读性,因此它非常适合初学者学习编程。这个名为“从浅入深学习pascal编程技术(全27).rar”的压缩包文件包含了27个部分的学习资料,旨在帮助用户...

    Pascal精要,学习DELPHI基础的好东西

    理解这些基本元素是学习Pascal的第一步。 2. **结构化编程**:Pascal强调结构化编程,强制使用begin...end块来组织代码,这有助于提高代码的可读性和可维护性。在“Pascal精要”中,这部分内容可能会详细解释如何...

    pascal初赛入门准备

    【描述】"这里整合了pascal初赛所需的所有内容,轻松学习pascal"表明这个压缩包可能包含了一系列的资源,这些资源是专门为准备Pascal初赛的学习者设计的。这可能包括教学材料、练习题、解题策略、历年竞赛题目和答案...

    Pascal 精要 -Pascal Delphi

    综上所述,无论是Pascal的历史回顾,还是Delphi中的Pascal语言扩展,都展现了Pascal作为一种教育和开发工具的强大之处。同时,通过合理使用注释和遵循良好的编码规范,可以进一步提升Pascal代码的质量和可维护性。

    pascal 精要(pascal 电子书)

    Pascal语言是一种结构化编程语言,由Niklaus Wirth于1968年设计,其初衷是为了教育目的,强调清晰的语法和良好的编程习惯。"Pascal精要"这本书是深入理解Pascal语言的重要参考资料,它详细介绍了Pascal的基本概念、...

    pascal-5i数据集

    Pascal-5i 数据集便是为解决这一问题而设计的一个宝贵资源,它为研究者提供了深入理解和优化小样本学习算法的平台。 Pascal-5i 数据集源于经典的PASCAL VOC(Visual Object Classes)数据集,这是一个广泛用于物体...

    turbo pascal 7.0

    Turbo Pascal 7.0是一款历史悠久且极具影响力的编程环境,它主要针对Pascal语言进行开发。在80年代末到90年代初,Turbo Pascal以其高效、易用和快速编译的特点,在程序员群体中广受欢迎。这个版本是该软件的一个经典...

    Pascal指针 Pascal 指针

    在Pascal编程语言中,指针是一种特殊的数据类型,它允许程序员通过地址直接访问和操作内存中的变量。本文将深入探讨Pascal中的指针概念及其应用。 1. 指针类型 指针是一个变量,它存储的是另一个变量的内存地址,而...

    超级玛丽pascal源码

    2. 图形编程:Pascal可能使用了一个图形库(如Turbo Pascal的BGI库或Free Pascal的SDL、Allegro库)来绘制游戏界面,学习如何使用这些库进行图形绘制和动画制作。 3. 游戏逻辑:分析游戏的逻辑结构,如游戏状态管理...

    Pascal精要_Essential Pascal

    第一章: Pascal历史回顾 第二章: 编写Pascal代码 第三章: 类型、变量及常量 第四章: 用户自定义数据类型 第五章: 语句 第六章: 过程与函数 第七章: 字符串操作 第八章: 内存 第九章: Windows编程 第十章: ...

    turbo pascal v7.0

    Turbo Pascal V7.0是一款经典的Pascal编程语言集成开发环境(IDE),由Borland公司于1990年代初期发布。它以其高效、简洁和易学性在计算机科学教育和初学者中广受欢迎。这款软件尽管年代久远,但其功能依然强大,...

    实现一个简单Pascal语言的编译器.zip

    本项目“实现一个简单Pascal语言的编译器”旨在通过C语言构建这样一个工具,让我们深入探讨这个过程涉及的核心概念和技术。 首先,我们要理解Pascal语言。Pascal是一种结构化编程语言,于1970年由Niklaus Wirth设计...

    PASCAL语言培训教程

    PASCAL语言是一种结构化编程语言,由尼古拉斯·沃斯在1968年设计,最初是为了教育目的而创建。它强调清晰的代码结构和严谨的语法,使得程序易于理解和维护。PASCAL语言培训教程是学习这种语言的重要资源,尤其对于...

    Turbo Pascal 7.0 汉化版 Build 0709

    经典的PASCAL语言编程开发工具,学习PASCAL语言课程必备。 Turbo Pascal 是由Borland公司设计、研制的一种适用于微机的Pascal语言应用开发集成环境。该产品由1983年推出1.0版本发展到1992年推出的7.0版本,功能...

    开始使用对象Pascal(Motaz Abdel Azeem)进行编程Start Programming Using Object Pascal (Motaz Abdel Azeem)

    总之,《开始使用对象Pascal编程》为编程新手和有经验的程序员提供了一个学习和应用对象Pascal语言的良好起点,涵盖了对象Pascal语言的发展历史、主要特性、相关技术及工具,以及一般编程技术的教学。通过这本书,...

    十个pascal程序

    Pascal是一种结构化编程语言,由Niklaus Wirth在1968年设计,旨在教育程序员严谨的编程习惯。它的语法清晰、简洁,强调了程序的逻辑结构,使其成为初学者学习编程的理想选择。"十个Pascal程序"这个主题可能包含一...

    pascalscript-master

    【标题】"PascalScript Master" 是一个与 Pascal 编程语言相关的开源项目,它可能是一个脚本引擎或编程库,允许用户在 ...通过学习和使用这个项目,开发者可以更好地掌握PascalScript,并将其应用于各种软件开发场景。

Global site tag (gtag.js) - Google Analytics