回 帖 发 新 帖 刷新版面

主题:大家给外解释下哦,小弟在线等...

下面的程序有的地方给我解释下好吗?





procedure TForm1.FormCreate(Sender: TObject);
begin
  LinkTbList:=TList.Create;
  CurrIndex:=0;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  LinkTbList.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
Var
  TmpTb:^TLinkTb;
  Lt:PLinkTb;          //这个是申明什么东西啊?
begin
  New(TmpTb);           //这句话什么意思啊?
  TmpTb^.Context:=Memo1.Text;
  TmpTb^.Next:=nil;       //这句什么意思啊?
  if CurrIndex=0 Then
    LinkTbList.Add(TmpTb)
  Else
  begin
    LinkTbList.Add(TmpTb);
    lT:=Pointer(LinkTbList.Items[CurrIndex-1]);    //这句什么意思啊?
    Lt^.Next:=Pointer(TmpTb);
  End;
  Inc(CurrIndex);
  TmpTb^.Next:=Pointer(LinkTbList.Items[0]);   //这句什么意思啊?
end;

procedure TForm1.Button2Click(Sender: TObject);
Var
  I:Integer;
  Tt:PLinkTb;
begin
  i:=0;
  Memo1.Lines.Clear;
  if LinkTbList.Count>0 Then
  begin
    Tt:=Pointer(LinkTbList.Items[0]);
    while Tt<>Nil do
    begin
      Memo1.Lines.Add(Tt^.Context);
      Tt:=Tt^.Next;
      Inc(I);
      if I>LinkTbList.Count then
        Break;
    End;
  End;
end;

procedure TForm1.Memo1Change(Sender: TObject);
begin

end;

end.[em1][em1]

回复列表 (共2个回复)

沙发

你问的部分都是指针类型的使用,看下指针部分的内容就明白了

板凳


  Lt:PLinkTb;          //表示Lt是一个指向LinkTb结构的指针
begin
  New(TmpTb);           //给TmpTb分配sizeof(LinkTb)空间
  TmpTb^.Context:=Memo1.Text;
  TmpTb^.Next:=nil;       //该结构指针成员next指向为空
  if CurrIndex=0 Then
    LinkTbList.Add(TmpTb)
  Else
  begin
    LinkTbList.Add(TmpTb);
    lT:=Pointer(LinkTbList.Items[CurrIndex-1]);//把()里的内容强制转化成指针类型,并赋值给lT
    Lt^.Next:=Pointer(TmpTb);
  End;
  Inc(CurrIndex);
  TmpTb^.Next:=Pointer(LinkTbList.Items[0]);   //同上

我来回复

您尚未登录,请登录后再回复。点此登录或注册