zoukankan      html  css  js  c++  java
  • Delphi中StringList添加对象

    开发环境Delphi7

    一个小测试,记录下

      1 unit Unit1;
      2 
      3 interface
      4 
      5 uses
      6   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      7   Dialogs, StdCtrls;
      8 
      9 type
     10   TForm1 = class(TForm)
     11     Button1: TButton;
     12     Button2: TButton;
     13     Button3: TButton;
     14     Button4: TButton;
     15     Button5: TButton;
     16     Button6: TButton;
     17     procedure FormCreate(Sender: TObject);
     18     procedure Button1Click(Sender: TObject);
     19     procedure Button5Click(Sender: TObject);
     20     procedure Button2Click(Sender: TObject);
     21     procedure Button3Click(Sender: TObject);
     22     procedure Button4Click(Sender: TObject);
     23     procedure Button6Click(Sender: TObject);
     24   private
     25     { Private declarations }
     26   public
     27     Flist01:TStrings;
     28     Flist02:TStrings;
     29     Flist_01:TStrings;
     30     procedure setss(s:string);
     31     { Public declarations }
     32   end;
     33   TMyP=procedure(ss:string) of object;
     34 var
     35   Form1: TForm1;
     36 
     37 implementation
     38 uses
     39   DB ;
     40 {$R *.dfm}
     41 
     42 procedure TForm1.FormCreate(Sender: TObject);
     43 begin
     44   Flist01:=TStringList.Create;
     45   Flist02:=TStringList.Create;
     46   Flist01.Delimiter:=';';
     47   Flist01.DelimitedText :='a=a00;b=b11';
     48   //Flist01.Text:='a=000;b=111';
     49   Flist02.Delimiter:=';';
     50   Flist02.DelimitedText :='A=A00;B=B11';
     51   Flist_01:=TStringList.Create;
     52 
     53 
     54 end;
     55 
     56 procedure TForm1.Button1Click(Sender: TObject);
     57 var
     58   list:TList;
     59   M:TMyP;
     60 begin
     61   Flist_01.AddObject('Flist01',Flist01);
     62   Flist_01.AddObject('Flist02',Flist02);
     63   M:=setss;
     64   Flist_01.AddObject('setss',@M);
     65 end;
     66 
     67 procedure TForm1.Button5Click(Sender: TObject);
     68 begin
     69   ShowMessage(Flist01.Values['a']+';'+Flist02.Values['A']);
     70 end;
     71 
     72 procedure TForm1.Button2Click(Sender: TObject);
     73 begin
     74   if Flist_01=nil then
     75     Exit;
     76   //Flist_01释放掉,不会把 Flist_01添加的对象释放掉   //Flist_01释放后 点击Button5还是可以访问Flist01的
     77   Flist_01.Free ;
     78   Flist_01:=nil;
     79 end;
     80 
     81 procedure TForm1.Button3Click(Sender: TObject);
     82 begin
     83   if Flist_01=nil then
     84     Flist_01:=TStringList.Create;
     85 end;
     86 
     87 procedure TForm1.Button4Click(Sender: TObject);
     88 begin
     89   if Flist_01=nil then
     90     Exit;
     91     if Flist_01.IndexOf('flist0')>-1 then
     92     begin
     93       ShowMessage('00');
     94     end;
     95   ShowMessage((Flist_01.Objects[Flist_01.IndexOf('flist01')] as TStrings).Values['a']);
     96 
     97   //ShowMessage((Flist_01.Objects[Flist_01.IndexOf('Flist01')] as TStrings).Values['a']);
     98   ShowMessage((Flist_01.Objects[Flist_01.IndexOf('Flist02')] as TStrings).Values['a']);
     99 end;
    100 
    101 procedure TForm1.setss(s: string);
    102 begin
    103   ShowMessage(s);
    104 end;
    105 
    106 procedure TForm1.Button6Click(Sender: TObject);
    107 var
    108   ss:TMyP;
    109 begin
    110   @ss:=Flist_01.Objects[Flist_01.IndexOf('setss')];
    111   ss('00');
    112   //(Flist_01.Objects[Flist_01.IndexOf('setss')]('000');
    113 end;
    114 
    115 end.
     1 object Form1: TForm1
     2   Left = 766
     3   Top = 362
     4   Width = 514
     5   Height = 340
     6   Caption = 'Form1'
     7   Color = clBtnFace
     8   Font.Charset = DEFAULT_CHARSET
     9   Font.Color = clWindowText
    10   Font.Height = -11
    11   Font.Name = 'MS Sans Serif'
    12   Font.Style = []
    13   OldCreateOrder = False
    14   OnCreate = FormCreate
    15   PixelsPerInch = 96
    16   TextHeight = 13
    17   object Button1: TButton
    18     Left = 24
    19     Top = 16
    20     Width = 137
    21     Height = 25
    22     Caption = 'Button1_添加到_01'
    23     TabOrder = 0
    24     OnClick = Button1Click
    25   end
    26   object Button2: TButton
    27     Left = 24
    28     Top = 64
    29     Width = 145
    30     Height = 25
    31     Caption = 'Button2_释放_01'
    32     TabOrder = 1
    33     OnClick = Button2Click
    34   end
    35   object Button3: TButton
    36     Left = 24
    37     Top = 112
    38     Width = 129
    39     Height = 25
    40     Caption = 'Button3_创建_01'
    41     TabOrder = 2
    42     OnClick = Button3Click
    43   end
    44   object Button4: TButton
    45     Left = 16
    46     Top = 184
    47     Width = 185
    48     Height = 25
    49     Caption = 'Button4_通过_01访问01和02'
    50     TabOrder = 3
    51     OnClick = Button4Click
    52   end
    53   object Button5: TButton
    54     Left = 16
    55     Top = 232
    56     Width = 185
    57     Height = 25
    58     Caption = 'Button5_访问01和02'
    59     TabOrder = 4
    60     OnClick = Button5Click
    61   end
    62   object Button6: TButton
    63     Left = 384
    64     Top = 88
    65     Width = 75
    66     Height = 25
    67     Caption = 'Button6'
    68     TabOrder = 5
    69     OnClick = Button6Click
    70   end
    71 end
  • 相关阅读:
    Ubuntu系统下的实用软件推荐
    上传项目到GitHub
    eclipse+fileSyncPlugin+svn+jenkins+tomcat
    js,jq获取元素位置属性及兼容性写法
    清除浮动的几种方法
    sub,dl,dt,排版,横向滚动条,浮动元素居中,box-sizing
    a里面不能嵌套a
    随笔
    自适应屏幕轮播图详解
    tip
  • 原文地址:https://www.cnblogs.com/dmqhjp/p/15628023.html
Copyright © 2011-2022 走看看