多语言展示
当前在线:1752今日阅读:162今日分享:23

Delphi删除复杂类型动态数组指定元素

Delphi删除复杂类型动态数组指定元素,复杂类型的元素,只能遍历赋值的方法。
工具/原料
1

Delphi7

2

Windows电脑

方法/步骤
1

打开Delphi7集成开发环境,在默认工程的Form1窗体放一个Button1按钮和一个Memo1控件。

2

在Unit1.pas源代码文件的implementation定义一个字符串类型动态数组类型,并声明这种类型的一个变量,代码如下:implementationtype  TArrs = array of string;var  ass:TArrs;

3

在Form1的OnCreare事件方法,写如下代码:procedure TForm1.FormCreate(Sender: TObject);var  i:integer;begin  Memo1.Lines.Clear;  SetLength(ass,5);  for i:=Low(ass) to High(ass) do  begin    ass[i]:=IntToStr(i)+'aaa';    Memo1.Lines.Add(ass[i]);  end;end;

4

在Unit1.pas源代码的implementation中定义一个删除动态数组指定元素的过程,代码如下:procedure deleteArrs(var ass:TArrS;const i:integer);var  len:Integer;  j:Integer;begin  len := Length(ass);  if i<=len-1 then  begin    for j:=i to len-2 do    begin      ass[j]:=Ass[j+1];    end;    SetLength(ass,len-1);  end;end;

5

双击Button1按钮进入OnClick事件方法,写如下代码:procedure TForm1.Button1Click(Sender: TObject);var  i:Integer;begin  deleteArrs(ass,2);  Memo1.Lines.Clear;  for i:=Low(ass) to High(ass) do  begin    Memo1.Lines.Add(ass[i]);  end;end;

6

F9运行程序,Memo1显示字符串动态数组内容,点击Button1删除了指定第二个元素,成功。

注意事项
1

注意这里不能再使用move方法通过sizeof获取元素大小,因为元素只是指针

2

删除指定元素的校验没有细致写,根据情况要判断传入的参数是否越界

推荐信息