http://kingron.myetang.com/vcl_component.gifVCL的继承层次图,GIF图形,目前只画了可视组件的部分,本来WinControl也Draw完成了的但是他妈的M$的软件出现了错误,在我最后一次操作的时候,丢失了全部的数据,因此重新Draw的时候,就只有这一部分了,他妈的,害得我一个晚上白干了!我FUCK M$....赫赫,等下又要被人骂“端起碗来吃饭,放下筷子骂娘”了!

解决方案 »

  1.   

    很不错啊
    真是谢谢你了
    csdn多点您这样的高手,我辈菜鸟就有幸了:)
      

  2.   

    啊,瞧瞧去。
    楼上的,kingron大虾什么时候写书的?
      

  3.   

    gif??呵呵,咋沒動畫,這個很普通。
      

  4.   

    类树太长了,是否考虑重新分布结构?
    不知道你将如何处理TBits等小类?
      

  5.   

    忙了一个下午,把可视组件这一块全部Draw好了,那些非可视组件有空的时候再Draw吧。
      

  6.   

    The reference to a non-html file from other host is forbidden.
      

  7.   

    to Kingron (对CSDN愤怒中……) :
    Thans a lot.
    你描述的情况真令人同情...
    哎,微软的这些破烂东西!华而不实!
      

  8.   

    TO:kingron(对CSDN愤怒中……) 
    太cool了谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢!期待下文
      

  9.   

    多看看Delphi Help
    为何舍近求远。
      

  10.   

    一直想找这样的东西,终于让我找到了:)
    太感谢kingron了:)
      

  11.   

    Borland早就应该出类层次图了,你帮忙做了件好事,希望能把它完全画完。
      

  12.   

    Very good! 大恩大德,无以为报,只有以谢相许了!呵呵!!
      

  13.   

    http://kingron.myetang.com/vcl_component.gif
    看不到呀!拜托贴到CSDN上吧!!!
      

  14.   

    to borlandor(大民): gif可不能贴!
    不过如果是文本文件就好了,方便Ctrl+C,Ctrl+V
      

  15.   

    很好, 但相對Borland所做的(BCB6光盤上的Bcb6VCLPoster.pdf), 現在只
    顯示vcl的極少部份呢.
      

  16.   

    BCB6.0 的安装盘里面有一个pdf文件,画出了VCL所有的类图。
      

  17.   

    to Kingron (对CSDN愤怒中……) :
    Thanks a lot!
      

  18.   

    原来的哪个宝兰合影,有病毒啊,害的我win2000完蛋了,在,,,,,
      

  19.   

    帮忙看看
    http://www.csdn.net/expert/topic/672/672817.xml?temp=.4878961
    谢谢
      

  20.   

    Kingron (对CSDN愤怒中……) 我好崇拜你,给我签个名吧!:)
      

  21.   

    偶像Kingron (对CSDN愤怒中……) :我好崇拜你,给我签个名吧!:)
      

  22.   

    :wolfAone(¤一步一步网上爬¤) :
    Word文档?没有........
      

  23.   

    kingron(对CSDN愤怒中……),你现在在哪儿呢?
      

  24.   

    嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻
    嘻嘻嘻我将用代码来实现VCL继承层次图嘻嘻嘻嘻
    嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻Classes -> LineText -> TTreeView -> TreeText
      

  25.   

    zswang,我也准备作啊,哈!!!!!
    你做我就不作了.......,我的思路还没有整理好,也是准备用TreeView来做....
    做好了,通知我一下哦.......要不要数据文件?我有类层次数据文件.....,Excel的,你要Access的我也可以转换出来........
      

  26.   

    TObject
     TPersistent
      TComponent
       TControl
        TGraphicControl
         TCustomLabel
          TLabel
         TSpeedButton
         TBevel
         TShape
         TImage
        TWinControl
         TCustomTreeView
          TTreeView
         TCustomEdit
          TCustomMemo
           TMemo
          TEdit
          TCustomMaskEdit
           TMaskEdit
         TButtonControl
          TButton
           TBitBtn
          TCustomCheckBox
           TCheckBox
          TRadioButton
         TCustomListControl
          TCustomMultiSelectListControl
           TCustomListBox
            TListBox
          TCustomCombo
           TCustomComboBox
            TComboBox
         TScrollBar
         TCustomControl
          TCustomGroupBox
           TGroupBox
          TCustomGrid
           TCustomDrawGrid
            TDrawGrid
             TStringGrid
          TCustomPanel
           TPanel
         TCommonCalendar
          TDateTimePicker
          TMonthCalendar
         TCustomHotKey
          THotKey
         TAnimate
       TMenu
        TMainMenu
        TPopupMenu
       TCustomActionList
        TActionList
       TCustomImageList
        TDragImageList
         TImageList
      

  27.   

    uses TypInfo;function ClassHierarchy(mClass: TClass; mDelimiter: string = '\'): string;
    begin
      Result := '';
      while Assigned(mClass) do begin
        Result := mClass.ClassName + mDelimiter + Result;
        mClass := mClass.ClassParent;
      end;
      Delete(Result, Length(Result) - Length(mDelimiter) + 1, MaxInt);
    end; { ClassHierarchy }function StrLeft(const mStr: string; mDelimiter: string): string;
    begin
      Result := Copy(mStr, 1, Pos(mDelimiter, mStr) - 1);
    end; { StrLeft }function StrRight(const mStr: string; mDelimiter: string): string;
    begin
      if Pos(mDelimiter, mStr) <= 0 then
        Result := ''
      else Result := Copy(mStr, Pos(mDelimiter, mStr) + Length(mDelimiter), MaxInt);
    end; { StrRight }function ListCount(mList: string; mDelimiter: string = ','): Integer;
    var
      I, L: Integer;
    begin
      Result := 0;
      if mList = '' then Exit;
      L := Length(mList);
      I := Pos(mDelimiter, mList);
      while I > 0 do begin
        mList := Copy(mList, I + Length(mDelimiter), L);
        I := Pos(mDelimiter, mList);
        Inc(Result);
      end;
      Inc(Result);
    end; { ListCount }function ListValue(mList: string; mIndex: Integer; mDelimiter: string = ','): string;
    var
      I, L, K: Integer;
    begin
      L := Length(mList);
      I := Pos(mDelimiter, mList);
      K := 0;
      Result := '';
      while (I > 0) and (K <> mIndex) do begin
        mList := Copy(mList, I + Length(mDelimiter), L);
        I := Pos(mDelimiter, mList);
        Inc(K);
      end;
      if K = mIndex then Result := StrLeft(mList + mDelimiter, mDelimiter);
    end; { ListValue }function TreeNodeString(mTreeNode: TTreeNode; mDelimiter: string = '\'): string;
    begin
      Result := '';
      while Assigned(mTreeNode) do begin
        Result := mTreeNode.Text + mDelimiter + Result;
        mTreeNode := mTreeNode.Parent;
      end;
      Delete(Result, Length(Result) - Length(mDelimiter) + 1, MaxInt);
    end; { TreeNodeString }function TreeViewToLineText(mTreeView: TTreeView; mStrings: TStrings;
      mDelimiter: string = '\'): Boolean;
    var
      I: Integer;
    begin
      Result := False;
      if not (Assigned(mTreeView) and Assigned(mStrings)) then Exit;
      mStrings.Clear;
      for I := 0 to mTreeView.Items.Count - 1 do
        if mTreeView.Items[I].Count = 0 then
          mStrings.Add(TreeNodeString(mTreeView.Items[I], mDelimiter));
      Result := True;
    end; { TreeViewToLineText }function LineTextToTreeView(mStrings: TStrings; mTreeView: TTreeView;
      mDelimiter: string = '\'): Boolean;
    var
      I, J, K: Integer;
      vStrPath: string;
      vStrText: string;
      vTreeNode: TTreeNode;
      vBoolFind: Boolean;
    begin
      Result := False;
      if not (Assigned(mTreeView) and Assigned(mStrings)) then Exit;
      mTreeView.Items.Clear;
      for I := 0 to mStrings.Count - 1 do begin
        vStrPath := '';
        vTreeNode := nil;
        for J := 0 to ListCount(mStrings[I], mDelimiter) - 1 do begin
          vStrText := ListValue(mStrings[I], J, mDelimiter);
          vStrPath := vStrPath + mDelimiter + vStrText;
          vBoolFind := False;
          for K := 0 to mTreeView.Items.Count - 1 do
            if mDelimiter + TreeNodeString(mTreeView.Items[K], mDelimiter) =
              vStrPath then begin
              vTreeNode := mTreeView.Items[K];
              vBoolFind := True;
              Break;
            end;
          if vBoolFind then Continue;
          vTreeNode := mTreeView.Items.AddChild(vTreeNode, vStrText);
        end;
      end;
      Result := True;
    end; { LineTextToTreeView }procedure TForm1.FormCreate(Sender: TObject);
    var
      I: Integer;
    begin
      Memo1.WordWrap := False;
      Memo1.Clear;
      for I := 0 to ComponentCount - 1 do
        Memo1.Lines.Add(ClassHierarchy(Components[I].ClassType));
      LineTextToTreeView(Memo1.Lines, TreeView1);
      TreeView1.SaveToFile('c:\temp.txt');
    end;
      

  28.   

    Memo1.Lines.Add(ClassHierarchy(TStringList));
    Memo1.Lines.Add(ClassHierarchy(TMemoryStream));
    .............................................
    我已经想办法了,想利用单元名来取得
    http://www.csdn.net/Expert/TopicView1.asp?id=683443
      

  29.   

    嘻嘻嘻我给你的只是一个例子,你怎么就当真了?嘻嘻嘻嘻用 终端类 如果没有好的办法
    就只有手工一个个的加代码
    “Memo1.Lines.Add(ClassHierarchy(????????????));”
      

  30.   

    如果再在把属性取出来放到数据库中,不就可以自己整理一个VCL元件帮助
    嘻嘻嘻MyBase一样的功能!嘻嘻嘻嘻
      

  31.   

    得到类继承图是通过简单编程是可以得到。但是类的属性、
    数据域,方法就很难了。
      前几天我琢磨想得到一个类的一个Published属性最初定义在哪个父类的
    Protected部分,研究了一天没结果。:(
      

  32.   

    ******************************************************************* 
      我做出个VCL完整类树,可以类继承方式/类层次两中方式查看整个VCL类信息。
    有列出所有published属性,查找一个类,查找一个属性发布在哪个类等功能。
    代码行数:400行。
    使用控件:TreeView
    使用函数:GetPropInfo,IsPublishedProp,TObject.ClassParent
    E-mail: [email protected]
    *******************************************************************
      

  33.   

    Delphi 完整类树,For D5,D6,D7。
      到这里下载我做的程序,按2种方式查看Delphi所有VCL类继承关系:
    http://www.softreg.com.cn/shareware_view.asp?id={EEEF56C0-C9B8-4D72-90A6-5FF3C11813BE}
    服务器有点慢,D5,D6,D7版程序做完了不过全部上传3M多,下载太慢,过两天
    上传其他版的。