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

学习PASCAL小记(二)

 
阅读更多

第三个例子,用两视图去显示ini文件的数据。

一看到这个就用了poro类,也顾不了那么多了,把这样一个实体类建立起来,接着就想用了。找了很久没有发现有get/set生成coding的选项,只能自己一个一个属性地去添加它们的方法。当把这个类弄完之后,想起Pascal还有一个数据类型叫做record的没有用,到现在还未用。下一步要考究的课程。

下一步就去让delphi去连接ini文件,然后就是对ini文件的读。这个时候遇到一个TStrings类型,空上类型很有趣的,就像JAVA中的List这个接口一样,不可以创建的。声明ss变量,然后ss := TStringList.Create ;这样去创建对象。

读取ini文件的DAO

unit DAOUnt;

interface

uses

   StaffDM, IniFiles, Classes;

type

  TStaffDAO = class

  private

  var

     Staff : TStaff ;

     IniFile : TIniFile ;

  public

    function GetStaff(FileName,StaffID : string) : TStaff ;

    function GetStaffIDSet(FileName : string):TStrings ;

  end;

implementation

 

function TStaffDAO.GetStaffIDSet(FileName : string):TSTrings;

var

   ss : Tstrings ;

begin

      ss := TStringList.Create ;

      IniFile := TIniFile.Create(FileName) ;

      IniFile.ReadSections(ss);

      IniFile.free ;

      GetStaffIDSet := ss ;

end;

 

function TStaffDAO.GetStaff(FileName, StaffID : string) : TStaff ;

var

   str : string;

begin

  Staff := TStaff.Create() ;

  IniFile := TIniFile.Create(FileName);

  Staff.SetName(IniFile.ReadString(StaffID, 'name', '')) ;

  Staff.SetAge(IniFile.ReadInteger(StaffID, 'age', 0));

  IniFile.Free ;

  GetStaff := Staff ;

end;

end.

创建TiniFile对象,构造函数带上一个文件的路径名。下面显示为ini文件。

[section1]

name=张三

age=26

 [section2]

name=李四

age=26

上面读取ini文件的时候,用了两方法,第一个方法把sections读入到TStrings中,也是上面的ini文件中section1section2等这些字符串。为什么要放入TStrings类型中呢,为什么用这两个东西来封装这样的数据呢?因为这个在显示中很有用,很多控件在数据读取时很喜欢这样的数据类型。例如:CmbBoxDBTComboBox类型,CmbBoxDB.Items := ss ;就可以给空上组合框增加数据了;TreeViewDBTTreeView类型,TreeViewDB.Items.Add(nil,ss.Strings[i]) ;表示显示在树控件上,i表示循环中的i,也就是把TStrings看成一个数组,一个内容读出来的显示在树控件的节点上。

总结到现在,基大方面的知识点已经差不多了,有一个很让人头痛的问题就是内存的释放,创建了一个对象,它不会像JVM那样有一套很好的垃圾回收,你创建了什么对象,也就要释放什么对象。很令人心烦的,经常出错,经常的内存问题。这个必须去注意。

另个一个很有意思的就是工具栏:



 
结构:



 
要加上一个工具栏,先加上一个TCoolBar,然后加上一个TToolbar。下次记得在这个位置,不要错了,也不要浪费时间去找了。

 
我们看到的ToolButton是放在工具栏上面的,还有一个很特别的内容就是,这些Button里面可以加上一些图标。来自哪里?上面的结构有一个对象叫做ImageList1,这个就是存认所有图标的对象,让这个东西与TToolBar类型的一个Images属性,把ImageList1对象关联上去就可以了,在创建Button的时候,就会有一个ImagesIndex属性,选择索引就会快显示图标了。这个内容探索了很久很久。

对于ImageList1对象,加入图标很方便,如下图就可以了,注意格式ico的好。这个控件在上面的win32也能找到。

完了这个控件,还有一个组合框的,有一个小的知识点找了很久,就是设置默认显示,CmbBoxDB.ItemIndex := 0 ;这样设置。

最后,总结一下那个树控件,一个有用的就是找到选择的节点,把这个节点信息显示出来,这个事件是对TTreeView控件写的事件响应该,然后找到这个控件中被选择的树节点。

procedure TMainFrm.TreeViewDBClick(Sender: TObject);

var

    Node : TTreeNode ;

begin

       Node := treeViewDB.Selected ;

       ShowTreeStaff(Node.Text) ;

end;

 

好了,这个例子,就是熟悉vcl控件,还有一个就是对对象的创建与释放是一个很值得注意的问题。

  • 大小: 4.3 KB
  • 大小: 37.3 KB
  • 大小: 28.7 KB
  • 大小: 21.6 KB
分享到:
评论

相关推荐

    pascal的学习必备

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

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

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

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

    4. **数组与记录**:Pascal支持一维、二维及多维数组,以及自定义的记录类型,这在处理复杂数据结构时非常有用。文档可能会详细介绍如何声明、初始化和操作这些数据结构。 5. **指针**:虽然Pascal不是一种面向对象...

    pascal 精要(pascal 电子书)

    5. **文件操作**:内置的文件操作功能使Pascal能读写磁盘上的数据,支持文本文件和二进制文件。 6. **模块化编程**:通过单元(Unit)机制,Pascal实现了模块化编程,方便代码组织和重用。 **学习Pascal的意义** ...

    pascal初赛入门准备

    【标题】"pascal初赛入门准备"指出的是针对Pascal编程语言的初级竞赛学习资料。Pascal是一种结构化编程语言,它在教育领域尤其是在计算机编程竞赛中有着广泛的应用。初学者通过学习Pascal,可以掌握基本的编程思维,...

    pascal-5i数据集

    《Pascal-5i 数据集:开启小样本学习的探索之旅》 在人工智能领域,机器学习和深度学习的发展已经取得了显著的进步,然而,一个长期存在的挑战是“小样本学习”问题。在这种情况下,模型需要在有限的训练样本上学习...

    Pascal 精要 -Pascal Delphi

    ### Pascal精要 - Pascal Delphi #### Pascal历史回顾 Pascal是一种历史悠久的编程语言,它在计算机科学领域占据着重要地位。本节将详细介绍Pascal的发展历程及其在Delphi中的应用。 ##### 沃斯的Pascal Pascal...

    Pascal精要_Essential Pascal

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

    pascal context

    《PASCAL Context:深度学习中的重要数据集》 PASCAL Context,全称为PASCAL Context Dataset,是计算机视觉领域一个重要的数据集,尤其在语义分割和场景理解任务中占据着至关重要的地位。该数据集是PASCAL VOC...

    PASCAL-S.zip

    他们需要熟悉图像处理、机器学习和深度学习的基本概念,例如卷积神经网络(CNN)、图像特征提取、像素级分类等技术。通过训练模型在PASCAL-S上,可以优化算法,使其能够更好地捕捉和理解图像的显著性信息。 总的来...

    超强大、好用的Pascal语言解释器(RemObjects Pascal Script)

    超强大、好用的Pascal语言解释器:RemObjects Pascal Script,支持以下特性: Pascal Script is a widely-used set of components for Delphi that makes it easy to add Pascal-based scripting support to your ...

    Pascal学习指南

    《Object Pascal Reference (中英文对照)》,原文出自Delphi6,CHM格式,1.6M,完全免费。发布时间:2002年10月10日。

    turbo pascal 7.0

    通过Turbo Pascal 7.0,程序员可以学习到Pascal语言的基本语法,如变量声明、控制结构(如if-else,for,while循环)、函数和过程定义、数组和记录等。此外,它还支持结构化编程原则,如模块化和自顶向下的设计,...

    开始编程使用pascal与lazarus.pdf

    2. 第一编辑Pat Anderson和第二编辑Jason Hackney都是资深程序员,他们有着丰富的Pascal及其它编程语言的背景知识。 许可协议: 1. 本书采用了Creative Commons许可协议,允许用户在特定条件下自由分享和使用。 2. ...

    pascal精要

    Pascal支持文件输入输出,可以读写文本文件和二进制文件。通过`write`和`writeln`进行写入,`read`和`readln`进行读取。 **7. 类型检查与编译时错误** Pascal是强类型语言,编译器会在编译阶段检查类型匹配,确保...

    turbo pascal v7.0

    这款软件尽管年代久远,但其功能依然强大,对于学习基础的程序设计概念和Pascal语言语法具有很高的价值。 Pascal语言,由Niklaus Wirth教授设计,是一种结构化的、静态类型的编程语言,旨在提高代码清晰性和可读性...

    十个pascal程序

    Pascal是一种结构化编程语言,由Niklaus Wirth在1968年设计,旨在教育程序员严谨的编程习惯。它的语法清晰、简洁,强调了程序的...无论是初学者还是有经验的程序员,这些Pascal程序都可以作为学习和参考的宝贵资源。

    Essential Pascal 中文版.rar

    8. **文件操作**: Pascal支持文本文件和二进制文件的读写操作,可以进行数据的持久化存储。 9. **面向对象编程**: 虽然Pascal原生不支持面向对象编程,但在Delphi和Free Pascal等扩展版本中,通过类(class)和继承...

Global site tag (gtag.js) - Google Analytics