• Delphi随记


    可以用GetPropInfo来判断一个对象或者类是否拥有某个属性

    可以用SetPropValue来为某个属性赋值,用GetPropValue来获取某个属性的值.

    以上前提是属性必须声明在published里(在被判断类的前面使用{$M+},否则编译会出警告,但不影响功能),在public里是不行的.

    当TObjectList对象的OwnsObjects属性设置为True(默认值)时,如果调用TObjectList对象的Clear,Delete,Remove或者释放TObjectList对象,都将销毁列表中的对象,而TList则不会.另外需要注意的是OwnsObjects并不影响Extract(Extract类似Remove,只是会返回被删除对象的指针),Extract只是从列表移除对象引用,并不会销毁对象.

    当TComponentList列表里的一个对象被释放时,将自动从列表里移除.

    没有Handle的组件必须被一个TWinControl包含,并且由这个TWincontrol负责绘制.TWinControl的PaintControls方法做的就是这件事.

    如果要使用泛型,需要引用System.Generics.Collections;

    动态创建菜单项:

    function NewItem(const ACaption: string; AShortCut: TShortCut;
      AChecked, AEnabled: Boolean; AOnClick: TNotifyEvent; hCtx: THelpContext;
      const AName: string): TMenuItem;

    如:

    PopupMenu1.AutoHotkeys := maManual;

    PopupMenu1.Items.Add(NewItem(edtHistory.Text,0,False,True,RestoreText,0,''));

    资源文件格式

    名称:xxx.rc

    内容:

    STRINGTABLE
    BEGIN
    1 "AB"
    2 "12"
    END bmp1 Bitmap a.bmp
    icon1 icon a.ico

     

    资源文件目录必须包括需要的文件

    rc文件需要用brcc32编译为res文件才能使用,使用方法为:运行cmd,切换到rc文件目录,执行brcc32 xxx.rc.如果需要指定文件名则:brcc32 xxx.rc –fo xxx.dll.

    资源引用方法有静态与动态两种,静态引用就是将资源文件包含到源码中编译到EXE中去;动态引用则是把资源文件当成DLL动态装载。静态引用资源文件在Delphi中是最简单不过了,只要在工程文件中加入{$R xxx.res}编译指令即可.

    引用时,字符串只要LoadStr(Index)即可,而其它资源用TResourceStream读取,只不过资源句柄就是程序本身,直接用hInstance就可以了

    ReallocMem:重新分配由GetMem分配的内存块大小.

    Application.ShowMainForm := False;让应用程序不显示窗体

    当使用DrawText时,如果要使文字在垂直方向对齐,需要uFormat同时增加DT_VCENTER or DT_SINGLELINE,使用其中某一个无效果.注:DT_BOTTOM和DT_SINGLELINE也要一起使用.

    CreateWindowEx是用来扩展CreateWindow所不具有的窗口风格的.

    StringOfChar:返回字符重复N次的字符串

    S := StringOfChar('A', 10);

    sets S to the string 'AAAAAAAAAA'.

     

    这玩意叫什么?求解答?:

    FSortedComponents.SortList(
      function(Item1, Item2: Pointer): Integer
      begin
        Result := CompareText(TComponent(Item1).Name, TComponent(Item2).Name);
      end);

    function CompareText(const S1, S2: string): Integer;//比较字符串,如果S1等于S2,返回0,如果S1>S2返回一个大于0的整数,如果S1<S2,返回一个小于0的整数.

    Delphi2009后:Exit(‘abc’)等同于Result := ‘abc’;Exit;

    Delphi总是先构造派生的类,仅当派生类调用了继承的构造器时才去构造基类。在C++中次序相反,从祖先类开始构建,最后才是派生的类。因而,假如有类C继承于B,而B继承于A,那么Delphi先是构建C,然后是B最后是A.C++先构建A,然后B,最后C。
  • 相关阅读:
    nextcloud环境搭建及部署
    docker容器内访问宿主机,访问不通 错误:Host is unreachable
    记录一下SQL的行行比较
    记录一次nginx平滑升级
    letsencrypt免费SSL证书自动续期
    守护进程因echo挂掉的原因,以及重定向标准输入、标准输出和标准错误
    openresty lua-nginx-module模块中文文档
    nginx localhost的坑
    PHP7 MongoDb的操作类
    tomcat 性能检测
  • 原文地址:https://www.cnblogs.com/cxp2009/p/2266283.html
Copyright © 2020-2023  润新知