zoukankan      html  css  js  c++  java
  • component to string 自定义窗体

    component to string

    string to component

    StringToComponent

    ComponentToString

    ObjectTextToBinary

    ObjectBinaryToText

    ReadComponent

    RegisterClass

    WriteComponentResFile

    ReadComponentResFile

    #include <memory>       //For STL auto_ptr class
     
    class MyScrollBar : public TScrollBar
    {
    __published:    // IDE-managed Components
    private:    // User declarations
    public:        // User declarations
        __fastcall MyScrollBar(TComponent* Owner);
    };
     
    __fastcall MyScrollBar::MyScrollBar(TComponent* Owner)
        : TScrollBar(Owner)
    {
    }
     
    void RegisterClassesWithStreamingSystem(void)
    {
      // Make sure that, as part of the startup
      // code, the streaming classes are registered
      // with the streaming system.
     
      #pragma startup RegisterClassesWithStreamingSystem
     
      Classes::RegisterClass(__classid(MyScrollBar));
    }
     
    MyScrollBar *ScrollBar1;
     
    String __fastcall ComponentToString(TComponent *c)
    {
      String as;
      std::auto_ptr<TMemoryStream> pms(new TMemoryStream);
      std::auto_ptr<TStringStream> pss(new TStringStream(as));
     
      try
      {
        pms->WriteComponent(c);
        pms->Seek(0, soFromBeginning);
        ObjectBinaryToText(pms.get(), pss.get());
        pss->Seek(0, soFromBeginning);
        as = pss->DataString;
      }
      catch(...)
      {
        ShowMessage("Streaming error.");
      }
     
      return as;
    }
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      Memo1->Text = ComponentToString(ScrollBar1);
    }
     
    TComponent *__fastcall StringToComponent(String as)
     
    {
      std::auto_ptr<TMemoryStream> pms(new TMemoryStream);
      std::auto_ptr<TStringStream> pss(new TStringStream(as));
      TComponent *pc;
     
      try
      {
        ObjectTextToBinary(pss.get(), pms.get());
        pms->Seek(0, soFromBeginning);
      }
      catch(...)
      {
        ShowMessage("Streaming error.");
      }
     
      pc = pms->ReadComponent(NULL);
      return pc;
    }
     
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
      TComponent *temp = StringToComponent(Memo1->Text);
      ScrollBar1->Free();
     
      ScrollBar1 = dynamic_cast<MyScrollBar *>(temp);
      ScrollBar1->Parent = Form1;
      ScrollBar1->Visible = TRUE;
    }
     
    __fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
    {
      ScrollBar1 = new MyScrollBar(Form1);  // Form1 will clean up the scroll bar.
      ScrollBar1->Parent = Form1;
      ScrollBar1->Visible = TRUE;
      ScrollBar1->Top = 48;
      ScrollBar1->Left = 250;
      ScrollBar1->Name = "Ricksbar";
    }
    View Code

     RegisterClass(TPersistentClass(aFrom.ClassType));

    UnRegisterClass(TPersistentClass(aFrom.ClassType));

     dwscript,paxcompiler 支持pas格式的语法

    RegisterComponentEditor

    http://blog.csdn.net/henreash/article/details/7371897

    属性编辑器

    http://www.rgzz.sdedu.net/ebook/hdbook/computer/bc/DELPHIzhuanti/rmjq/028.htm

  • 相关阅读:
    中文转数字
    半角全角互转
    sql快速查记录数
    杀进程批处理
    线程基本用法
    sql游标用法示例
    BUGFREE的使用
    SQL常用函数
    ASP.NET 2.0 下的验证码控件
    经典sql语句
  • 原文地址:https://www.cnblogs.com/cb168/p/4679004.html
Copyright © 2011-2022 走看看