Delphi7
Windows电脑
打开Delphi7集成开发环境,在默认工程的Form1窗体放一个Button1按钮和一个Memo1控件。
在Unit1.pas源代码文件的implementation定义一个字符串类型动态数组类型,并声明这种类型的一个变量,代码如下:implementationtype TArrs = array of string;var ass:TArrs;
在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;
在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;
双击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;
F9运行程序,Memo1显示字符串动态数组内容,点击Button1删除了指定第二个元素,成功。
注意这里不能再使用move方法通过sizeof获取元素大小,因为元素只是指针
删除指定元素的校验没有细致写,根据情况要判断传入的参数是否越界