收集的一些零散代码

1.格式化文本,动态添加空格


1

2

3

4

5

6

7

8

9

10

11

12

13

14

function formatStr(const srcStr: string;Leng:integer): string;

var

  i, iLen: integer;

begin

  //先把原字符串赋值给返回字符串Result

  Result:= srcStr;

  //计算相差多少空格

  iLen:= Leng - Length(srcStr);

  //在返回字符串后,补齐空格

  for i:= 1 to iLen do

  begin

    Result:= Result + ‘ ‘;

  end;

end;

2.给Panle添加有颜色的边框

代码:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

unit Unit1;

interface

uses

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

  Dialogs, ExtCtrls;

  type

  TPanel = class(ExtCtrls.TPanel)

  public

    procedure Paint; override;

  end;

type

  TForm1 = class(TForm)

    Panel1: TPanel;

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

implementation

{$R *.dfm}

{ TPanel }

procedure TPanel.Paint;

begin

  inherited;

  Canvas.Pen.Color :=clBlue;

  Canvas.Rectangle(ClientRect);

end;

end.

3.将DBGRID的数据导出到EXCEL


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

function ExportToExcel(dbgrid:tdbgrid):boolean;

   const

       xlNormal=-4143;

   var

       i,j,k:integer;

       str,filename:string;

       excel:OleVariant;

       SavePlace:    TBookmark;

       savedialog:tsavedialog;

       ProgressBar1:TProgressBar;

   begin

       result:=false;

       filename:=‘‘;

       if   dbgrid.DataSource.DataSet.RecordCount>65536    then

             begin

                 if application.messagebox(‘需要导出的数据过大,Excel最大只能容纳65536行,是否还要继续?‘,‘询问‘,mb_yesno+mb_iconquestion)=idno    then

                    exit;

             end;   

       screen.Cursor:=crHourGlass;

       try

           excel:=CreateOleObject(‘Excel.Application‘);

           excel.workbooks.add;   

       except

           screen.cursor:=crDefault;

           showmessage(‘无法调用Excel!‘);   

           exit;   

       end;   

       savedialog:=tsavedialog.Create(nil);   

       savedialog.Filter:=‘Excel文件(*.xls)|*.xls‘;   

       if    savedialog.Execute    then

             begin

                 if    FileExists(savedialog.FileName)    then

                       try

                           if    application.messagebox(‘该文件已经存在,要覆盖吗?‘,‘询问‘,mb_yesno+mb_iconquestion)=idyes    then

                                 DeleteFile(PChar(savedialog.FileName))

                           else

                                 begin

                                     Excel.Quit;

                                     savedialog.free;

                                     screen.cursor:=crDefault;

                                     Exit;

                                 end;   

                       except

                           Excel.Quit;

                           savedialog.free;

                             screen.cursor:=crDefault;

                           Exit;   

                       end;

                 filename:=savedialog.FileName;   

             end;

       savedialog.free;

       application.ProcessMessages;   

       if    filename=‘‘    then

             begin

                 result:=false;

                 Excel.Quit;   

                 screen.cursor:=crDefault;

                 exit;   

             end;   

       k:=0;   

       for    i:=0    to    dbgrid.Columns.count-1    do

           begin

               if    dbgrid.Columns.Items[i].Visible    then

                     begin

                         //Excel.Columns[k+1].ColumnWidth:=dbgrid.Columns.Items[i].Title.Column.Width;   

                         excel.cells[1,k+1]:=dbgrid.Columns.Items[i].Title.Caption;

                         inc(k);   

                     end;   

           end;   

    

       dbgrid.DataSource.DataSet.DisableControls;   

       saveplace:=dbgrid.DataSource.DataSet.GetBookmark;   

       dbgrid.DataSource.dataset.First;   

       i:=2;   

       if    dbgrid.DataSource.DataSet.recordcount>65536    then

             ProgressBar1:=ProgressBarform(65536)

       else

             ProgressBar1:=ProgressBarform(dbgrid.DataSource.DataSet.recordcount);   

       while    not    dbgrid.DataSource.dataset.Eof    do

           begin

               k:=0;   

               for    j:=0    to    dbgrid.Columns.count-1    do

                   begin

                       if    dbgrid.Columns.Items[j].Visible    then

                             begin

                                 excel.cells[i,k+1].NumberFormat:=‘@‘;   

                                 if    not    dbgrid.DataSource.dataset.fieldbyname(dbgrid.Columns.Items[j].FieldName).isnull    then

                                       begin

                                           str := dbgrid.DataSource.dataset.fieldbyname(dbgrid.Columns.Items[j].FieldName).value;

                                           Excel.Cells[i, k + 1] := Str;

                                       end;   

                                 inc(k);   

                             end

                       else

                             continue;

                   end;   

               if    i=65536    then

                     break;   

               inc(i);   

               ProgressBar1.StepBy(1);

               dbgrid.DataSource.dataset.next;

           end;

       progressbar1.Owner.Free;

       application.ProcessMessages;

       dbgrid.DataSource.dataset.GotoBookmark(SavePlace);

       dbgrid.DataSource.dataset.EnableControls;

    

       try

           if    copy(FileName,length(FileName)-3,4)<>‘.xls‘    then

                 FileName:=FileName+‘.xls‘;

           Excel.ActiveWorkbook.SaveAs(FileName,xlNormal,‘‘‘‘,False,False);

       except

           Excel.Quit;

             screen.cursor:=crDefault;

           exit;

       end;

       //Excel.Visible    :=    true;

       Excel.Quit;

       screen.cursor:=crDefault;

       Result:= true;

   end;

4.将Adoquery的数据导出到Excel


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

function queryExportToExcel(queryexport:tadoquery):boolean;

   const

       xlNormal=-4143;

   var

       i,j,k:integer;

       str,filename:string;

       excel:OleVariant;

       savedialog:tsavedialog;

       ProgressBar1:TProgressBar;

   begin

       result:=false;

       filename:=‘‘;

       if   queryexport.RecordCount>65536    then

             begin

                 if    application.messagebox(‘需要导出的数据过大,Excel最大只能容纳65536行,是否还要继续?‘,‘询问‘,mb_yesno+mb_iconquestion)=idno    then

                       exit;   

             end;   

       screen.Cursor:=crHourGlass;

       try

           excel:=CreateOleObject(‘Excel.Application‘);

           excel.workbooks.add;   

       except

             screen.cursor:=crDefault;   

           showmessage(‘无法调用Excel!‘);   

           exit;   

       end;   

       savedialog:=tsavedialog.Create(nil);   

       savedialog.Filter:=‘Excel文件(*.xls)|*.xls‘;   

       if    savedialog.Execute    then

             begin

                 if    FileExists(savedialog.FileName)    then

                       try

                           if    application.messagebox(‘该文件已经存在,要覆盖吗?‘,‘询问‘,mb_yesno+mb_iconquestion)=idyes    then

                                 DeleteFile(PChar(savedialog.FileName))

                           else

                                 begin

                                     Excel.Quit;

                                     savedialog.free;

                                     screen.cursor:=crDefault;

                                     Exit;

                                 end;

                       except

                           Excel.Quit;

                           savedialog.free;

                             screen.cursor:=crDefault;

                           Exit;   

                       end;

                 filename:=savedialog.FileName;   

             end;

       savedialog.free;

       application.ProcessMessages;   

       if filename=‘‘ then

          begin

             result:=false;

             Excel.Quit;

             screen.cursor:=crDefault;

             exit;

          end;   

       k:=0;   

       for i:=0 to queryexport.FieldCount-1    do

           begin

            excel.cells[1,k+1]:=queryexport.Fields[i].FieldName;

            inc(k);

           end;

       queryexport.First;

       i:=2;   

       if    queryexport.recordcount>65536    then

             ProgressBar1:=ProgressBarform(65536)

       else

             ProgressBar1:=ProgressBarform(queryexport.recordcount);

       while    not    queryexport.Eof    do

           begin

               k:=0;   

               for j:=0 to queryexport.FieldCount-1    do

                   begin

                      excel.cells[i,k+1].NumberFormat:=‘@‘;

                      if not queryexport.fieldbyname(queryexport.Fields[j].FieldName).isnull    then

                         begin

                            str:=queryexport.fieldbyname(queryexport.Fields[j].FieldName).AsString;

                            Excel.Cells[i,    k    +    1]    :=    Str;

                         end;

                   inc(k);

                   end;

               if i=65536 then

                  break;

               inc(i);   

               ProgressBar1.StepBy(1);   

               queryexport.next;   

           end;

       progressbar1.Owner.Free;

       application.ProcessMessages;

       try

           if copy(FileName,length(FileName)-3,4)<>‘.xls‘ then

              FileName:=FileName+‘.xls‘;

           Excel.ActiveWorkbook.SaveAs(FileName,xlNormal,‘‘‘‘,False,False);

       except

           Excel.Quit;

             screen.cursor:=crDefault;

           exit;

       end;

       //Excel.Visible    :=    true;

       Excel.Quit;

       screen.cursor:=crDefault;

       Result :=  true;

   end;

end.

时间: 2024-10-20 17:57:48

收集的一些零散代码的相关文章

【Away3D代码解读】(二):渲染核心流程(简介、实体对象收集)

我之前解析过Starling的核心渲染流程,相比Away3D而言Starling真的是足够简单,不过幸运的是两者的渲染流程是大体上相似的:Starling的渲染是每帧调用Starling类中的render方法,类似的Away3D的渲染是每帧调用View3D类中的render方法,那我们要了解Away3D的渲染就需要从这个方法入手了. View3D的render方法源码: 1 /** 2 * Renders the view. 3 */ 4 public function render():voi

30+有用的CSS代码片段

在一篇文章中收集所有的CSS代码片段几乎是不可能的事情,但是我们这里列出了一些相对于其他的更有用的代码片段,不要被这些代码的长度所吓到,因为它们都很容易实现,并且具有良好的文档.除了那些解决常见的恼人的问题外,也包含了一些解决新问题的新技术. 1. 垂直对齐 如果你之前遇到过这个问题,你就应该知道它是多么的烦人,幸运的是,现在你可以使用CSS3变换来解决这个问题: .vc{ position: relative; top: 50%; -webkit-transform: translateY(-

【转】30+有用的CSS代码片段

来自:WEB资源网 链接:http://webres.wang/31-css-code-snippets-to-make-you-a-better-coder/ 原文:http://www.designyourway.net/blog/resources/31-css-code-snippets-to-make-you-a-better-coder/ 在一篇文章中收集所有的CSS代码片段几乎是不可能的事情,但是我们这里列出了一些相对于其他的更有用的代码片段,不要被这些代码的长度所吓到,因为它们都

李洪强iOS开发之iOS社区收集

李洪强iOS开发之iOS社区收集 项目 简述 github 全球最大的代码仓库,无论是iOS开发还是Android开发没有人不知道这个网站,它也是一个社区,你可以去follow(关注)某些人或公司. cocoachina 号称全球最热的苹果开发社区,这里有很多关于iOS,mac开发的相关文章,值得收藏的中午社区 Swift 语言指南 这份指南汇集了Swift语言主流学习资源,并以开发者的视角整理编排,虽然看上去只是一篇博文,但是作者每周都在更新,从这个角度来说,我把它归类到社区中. swiftk

56个PHP开发常用代码

2016/02/14 6203 4 在编写代码的时候有个神奇的工具总是好的!下面这里收集了 50+ PHP 代码片段,可以帮助你开发 PHP 项目. 这些 PHP 片段对于 PHP 初学者也非常有帮助,非常容易学习,让我们开始学习吧- 1. 发送 SMS 在开发 Web 或者移动应用的时候,经常会遇到需要发送 SMS 给用户,或者因为登录原因,或者是为了发送信息.下面的 PHP 代码就实现了发送 SMS 的功能. 为了使用任何的语言发送 SMS,需要一个 SMS gateway.大部分的 SMS

程序代码阅读技巧

一.代码阅读的必要性 阅读别人的代码作为研发人员是一件经常要做的事情.一个是学习新的编程语言的时候通过阅读别人的代码是个最佳的学习方法,另外是积累编程经验.如果你有机 会阅读一些操作系统的代码会帮助你理解一些基本的原理.更有就是在你作为一个质量确保人员或一个小领导的时候如果你要做白盒测试的时候没有阅读代码的能力 是不能完成相应的任务.最后一个就是如果你中途接手一个项目的时候或给一个项目做售后服务的时候是要有阅读代码的能力的. 二.收集所有可能收集的材料 阅读代码要做的第一件事情是收集所有和项目相

PHP必用代码片段

2018-10-30 在编写代码的时候有个神奇的工具总是好的!下面这里收集了 50+ PHP 代码片段,可以帮助你开发 PHP 项目. 这些 PHP 片段对于 PHP 初学者也非常有帮助,非常容易学习,让我们开始学习吧- 1. 发送 SMS 在开发 Web 或者移动应用的时候,经常会遇到需要发送 SMS 给用户,或者因为登录原因,或者是为了发送信息.下面的 PHP 代码就实现了发送 SMS 的功能. 为了使用任何的语言发送 SMS,需要一个 SMS gateway.大部分的 SMS 会提供一个

[Spring cloud 一步步实现广告系统] 4. 通用代码模块设计

一个大的系统,在代码的复用肯定是必不可少的,它能解决: 统一的响应处理(可以对外提供统一的响应对象包装) 统一的异常处理(可以将业务异常统一收集处理) 通用代码定义.配置定义(通用的配置信息放在统一的代码管理中,便于维护和更新) 创建项目mscx-ad-common POM文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/PO

Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程)

场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100902301 Docker Compose基本使用-使用Compose启动Tomcat为例: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100904080 Docker Compose部署项目到容器-基于Tomc