制作一个仓库系统,怎么将定义好的指针变量清空
制作一个仓库系统,如何将定义好的指针变量清空
本人制作了一个仓库统计系统,想要在确认出库(button3)按钮中添加一条清空指针变量的代码,因为每次关闭form2后重新添加货物时总是存在上一次存储的数据,希望各位论坛的高手能够帮我解决这个困扰,以下是添加按钮和删除按钮代码。
procedure TForm2.Button1Click(Sender: TObject);
var
tempp,p:plink;
begin
new(tempp);
tempp^.mh:=edit1.Text;
tempp^.sl:=edit2.Text;
tempp^.dw:=edit3.Text;
tempp^.ck:=edit4.Text;
tempp^.next:=nil;
if dtrec=nil then
begin
new(dtrec);
dtrec:=tempp;
end
else
begin
p:=dtrec;
while p^.next<>nil do
p:=p^.next;
p^.next:=tempp;
end;
edit1.Clear;
edit2.Clear;
edit3.Clear;
edit4.Clear;
edit1.SetFocus;
end;
procedure TForm2.Button3Click(Sender: TObject);
var
p,p1:plink;
i:integer;
begin
if edit1.Text=''then
begin
showmessage('请输入模号,模号不能为空!');
exit;
end;
i:=0;
p:=dtrec;
if p=nil then
showmessage('无数据!')
else
if p^.mh=edit1.Text then
begin
dtrec:=p^.next;
p^.next:=nil;
p:=dtrec;
end
else
begin
p1:=p^.next;
if p1<>nil then
repeat
if p1.mh=edit1.Text then
begin
p^.next:=p1^.next;
p1:=p;
i:=i+1;
end
else
begin
p:=p1;
p1:=p1^.next;
end;
until p1=nil;
if i=0 then
showmessage('无匹配数据!');
end;
end;
------解决思路----------------------
procedure TForm2.Button1Click(Sender: TObject);
var
tempp,p:plink;
begin
new(tempp);
tempp^.mh:=edit1.Text;
tempp^.sl:=edit2.Text;
tempp^.dw:=edit3.Text;
tempp^.ck:=edit4.Text;
tempp^.next:=nil;
if dtrec=nil then
begin
new(dtrec);
dtrec:=tempp;
end
else begin
p:=dtrec;
while p^.next<>nil do
p:=p^.next;
p^.next:=tempp;
end;
edit1.Clear;
edit2.Clear;
edit3.Clear;
edit4.Clear;
edit1.SetFocus;
end;
procedure TForm2.Button3Click(Sender: TObject);
var
p,p1:plink;
i:integer;
begin
if edit1.Text=''then
begin
showmessage('请输入模号,模号不能为空!');
exit;
end;
i:=0;
p:=dtrec;
p1:=nil;
//指针搜索
while (p<>nil) do
begin
if p.mh=edit1.Text then
break;
p1:=p; //保存当前指针
p:=p^.next;
end;
if p=nil then
begin
showmessage('无数据!');
Exit;
end;
if p1=nil then
begin
//删除第一个元素
p1:=p;
p:=p^.next;
dispos(p1);
Exit;
end;
//删除元素
p1^.next:=p^.next;
dispos(p);
end;
------解决思路----------------------
ListBox.Items.Clear
你的结构类型的代码没有贴上来,不知道你的plink结构是如何组织
本人制作了一个仓库统计系统,想要在确认出库(button3)按钮中添加一条清空指针变量的代码,因为每次关闭form2后重新添加货物时总是存在上一次存储的数据,希望各位论坛的高手能够帮我解决这个困扰,以下是添加按钮和删除按钮代码。
procedure TForm2.Button1Click(Sender: TObject);
var
tempp,p:plink;
begin
new(tempp);
tempp^.mh:=edit1.Text;
tempp^.sl:=edit2.Text;
tempp^.dw:=edit3.Text;
tempp^.ck:=edit4.Text;
tempp^.next:=nil;
if dtrec=nil then
begin
new(dtrec);
dtrec:=tempp;
end
else
begin
p:=dtrec;
while p^.next<>nil do
p:=p^.next;
p^.next:=tempp;
end;
edit1.Clear;
edit2.Clear;
edit3.Clear;
edit4.Clear;
edit1.SetFocus;
end;
procedure TForm2.Button3Click(Sender: TObject);
var
p,p1:plink;
i:integer;
begin
if edit1.Text=''then
begin
showmessage('请输入模号,模号不能为空!');
exit;
end;
i:=0;
p:=dtrec;
if p=nil then
showmessage('无数据!')
else
if p^.mh=edit1.Text then
begin
dtrec:=p^.next;
p^.next:=nil;
p:=dtrec;
end
else
begin
p1:=p^.next;
if p1<>nil then
repeat
if p1.mh=edit1.Text then
begin
p^.next:=p1^.next;
p1:=p;
i:=i+1;
end
else
begin
p:=p1;
p1:=p1^.next;
end;
until p1=nil;
if i=0 then
showmessage('无匹配数据!');
end;
end;
------解决思路----------------------
procedure TForm2.Button1Click(Sender: TObject);
var
tempp,p:plink;
begin
new(tempp);
tempp^.mh:=edit1.Text;
tempp^.sl:=edit2.Text;
tempp^.dw:=edit3.Text;
tempp^.ck:=edit4.Text;
tempp^.next:=nil;
if dtrec=nil then
begin
new(dtrec);
dtrec:=tempp;
end
else begin
p:=dtrec;
while p^.next<>nil do
p:=p^.next;
p^.next:=tempp;
end;
edit1.Clear;
edit2.Clear;
edit3.Clear;
edit4.Clear;
edit1.SetFocus;
end;
procedure TForm2.Button3Click(Sender: TObject);
var
p,p1:plink;
i:integer;
begin
if edit1.Text=''then
begin
showmessage('请输入模号,模号不能为空!');
exit;
end;
i:=0;
p:=dtrec;
p1:=nil;
//指针搜索
while (p<>nil) do
begin
if p.mh=edit1.Text then
break;
p1:=p; //保存当前指针
p:=p^.next;
end;
if p=nil then
begin
showmessage('无数据!');
Exit;
end;
if p1=nil then
begin
//删除第一个元素
p1:=p;
p:=p^.next;
dispos(p1);
Exit;
end;
//删除元素
p1^.next:=p^.next;
dispos(p);
end;
------解决思路----------------------
ListBox.Items.Clear
你的结构类型的代码没有贴上来,不知道你的plink结构是如何组织