请高手指教
   treeview控件,如何从数据库中一个表中一个字段的所有值(string),取出,
建立一棵数,数的结点即为表中一列的每一个值。并且每个结点对应一个窗体,当
鼠标点到某个结点的时候,在一个botton中实现对应窗体的弹出。
如果 可能的话。能不能  将窗体在点到时候才动态创建!!!
   请各位高手指点!!谢谢!!!!

解决方案 »

  1.   

    function GradeToSpace(SpaceCount: Integer): string;
    var
      I: Integer;
      S: string;
    begin
      S := ' ';
      result := '';
      if SpaceCount <> 1 then
        for I := 1 to SpaceCount - 1 do
          begin
            result := result + S;
          end;
    end;procedure DeptToText(LsQuery: TQuery; LoadView: TTreeView; LsGrade, LsName,
      LsCode: string);//lsgrade为树的级字段,LSNAME为数节点名字段,LSCODE为节点代码字段
    var
      FileId: Integer;
      f: textfile;
    begin
      FileId := FileCreate(ExtractFilePath(ParamStr(0)) + 'Dept.txt');
      FileClose(FileId);
      assignfile(f, ExtractFilePath(ParamStr(0)) + 'Dept.Txt');
      Append(f);
      with LsQuery do
        begin
          DisableControls;
          First;
          while not Eof do
            begin
              Writeln(f, GradeToSpace(fieldbyname(lsgrade).asinteger)
                + '[' + FieldByName(lsnamecode).AsString + ']' +
                FieldByName(LsName).AsString);
              Next;
            end;
          First;
          EnableControls;
        end;
      Flush(f);
      closefile(f);
      LoadView.Items.Clear;
      LoadView.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Dept.Txt');
      DeleteFile(Pchar((ExtractFilePath(ParamStr(0)) + 'Dept.Txt')));
    end;