代码:
procedure CreateGraphic(G:TGraph);
var
  i,j:integer;
  Stra:string;
begin
  Form2.ADOQuery2.Active:= True;
  Form2.ADOQuery2.First;
  G.n:= Form2.ADOQuery2.RecordCount;
  Form2.Memo1.Clear;
  for i:= 0 to (G.n - 1) do
    begin
      G.Vexs[i]:= i;
      Stra:='';
      for j:= 0 to (G.n - 1) do
        begin
          if  IntToStr(Form2.ADOQuery2.Fields[j].AsInteger) = #0 THEN
          G.Edges[i,j]:=1000
          else
          G.Edges[i,j]:= Form2.ADOQuery2.Fields[j].AsInteger;
          Stra:=Stra +' ' + IntToStr(G.Edges[i,j]);
        end;
      Form2.Memo1.Lines.Add(Stra);
      Form2.ADOQuery2.Next;
    end;  for i:= 0 to (G.n - 1) do
    begin
      Stra:='';
      for j:=0 to (G.n - 1)do
        begin
         Stra:=Stra +' ' + IntToStr(G.Edges[i,j]);
        end;
       Form2.Memo1.Lines.Add(Stra);
    end;
end;
结果:
 0 0 10 0 30 100
 0 0 5 0 0 0
 0 0 0 50 0 0
 0 0 0 0 0 10
 0 0 0 20 0 60
 0 10 0 0 0 0
 14236776 1 2 3 4 5
 0 0 5 0 0 0
 0 0 0 50 0 0
 0 0 0 0 0 10
 0 0 0 20 0 60
 0 10 0 0 0 0
为什么第2次输出的第一行是这样子的?