解决方案 »

  1.   

    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;
      

  2.   

    看你界面上有ADOQuery, 看代码你又是用链表临时保存数据。。搞不清楚你要干啥啊???“每次关闭form2后重新添加货物时总是存在上一次存储的数据”也不懂是个什么意思!
      

  3.   

    就是当我点击添加的时候,界面是这样的
    关闭再次点击出库进入的时候还是这样子的,我制作了一个timer让他不停显示
    procedure TForm2.Timer1Timer(Sender: TObject);
    var
    p:plink;
    begin
    listbox1.Clear;
    listbox2.Clear;
    listbox3.Clear;
    listbox4.Clear;
    p:=dtrec;
    if dtrec=nil then
    exit
    else
    repeat
    listbox1.Items.Add(p^.mh);
    listbox2.Items.Add(p^.sl);
    listbox3.Items.Add(p^.dw);
    listbox4.Items.Add(p^.ck);
    p:=p^.next;
    until p=nil;
    end;
    但是希望能在关闭再打开的时候timer 显示的 listbox1,listbox2,listbox3,listbox4都是空的。
      

  4.   

    把链表清空啊while p<>nil do 
    begin
      x:=p;
      p:=P.next;
      dispose(x);
      x:= nil;
    end;
      

  5.   

    关闭FORM的时候把LISTBOX的ITEMS清空
      

  6.   

    是在FORMCLOSE中填写吗? X和P的定义是怎么样子的?我用X,P:plink;提示出错。
    Invalid pointer operation
      

  7.   

    ListBox.Items.Clear你的结构类型的代码没有贴上来,不知道你的plink结构是如何组织