• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

DELPHI自己整理的笔记

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1:如果编译的时候,经常出现类似这种警告

    warning W1005: W1005 Unit 'FileCtrl' is specific to a platform 

    warning W1002: W1002 Symbol 'FindData' is specific to a platform

    就在Interface 与 Users 之间,也就是Users之前

    加上{$WARN  UNIT_PLATFORM OFF}

          {$WARN SYMBOL_PLATFORM OFF}

2:查看一个字符串中有多少个汉字,同时用这种方法,可以得到多少汉字,多个英文

var
  ans: AnsiString;
  wis: WideString;
  sub: Integer; // 汉字的个数
Begin
  ans := '盗版delphi';
  wis := WideString(ans);
  sub := Length(ans) - Length(wis);

3:树上定位到了结点, 但滚动条没有下拉,看不到, 这以加上

   Node.MakeVisible; 

   这样就会定位到,并且显示当前行,

 4:Delphi 中, 取颜色的  RGB 值

    Form1.Canvas.Pen.Color := clBtnFace;

    mmo1.Lines.Add('Red   :=   ' + IntToStr(GetRValue(Form1.Canvas.Pen.Color)));

    mmo1.Lines.Add('Green   :=   ' + IntToStr(GetGValue(Form1.Canvas.Pen.Color)));

    mmo1.Lines.Add('Blue   :=   ' + IntToStr(GetBValue(Form1.Canvas.Pen.Color)));

5:判断一个控件,是否有该属性.

    function HaveProperty(const AComponent: TObject; AProperty: string): boolean;

    begin

      Result := IsPublishedProp(AComponent, AProperty);

    end

   测试:

    if HaveProperty(btn1, 'Font') then
    ShowMessage('存在')
    else
    ShowMessage('不存在');

    ------

    if HaveProperty(btn1.Font, 'ddda') then
    ShowMessage('存在')
    else
    ShowMessage('不存在');

 

6:DELPHI对象赋值  

  Delphi的对象之间赋值主要要注意几个方面的问题:

  1.对象之间的 :=赋值只是地址赋值,即是将当前对象的地址赋值到变量中,定义的变量可以是不用初始化的,在内存中两个变量指向的是同一地址空间;
  2.对象值赋值,主要是在内存中再开避新的地址空间,在赋值时是赋值相同的内存副本,一般如采用TPersistent继承的类都有Assign方法,可以重载此方法,它的主要作用即是对于对象中的变量进行相应的赋值操作。继承的对象如没有重载此方法在应用此方法时会提示不能对相同类的对象进行此赋值操作的错误!
 

 7: 怎样删除一个里面有文件的文件夹   连文件一起删掉   求具体代码 谢谢

 function DeleteDirectory(const DirName: stringconst UI: Boolean False): Boolean;

{
   删除目录
}
var
  fo: TSHFILEOPSTRUCT;
begin
  FillChar(fo, SizeOf(fo), 0);
  with fo do
  begin
    Wnd := GetActiveWindow;
    wFunc := FO_DELETE;
    pFrom := PChar(DirName + #0);
    pTo := #0#0;
    fFlags := FOF_NOCONFIRMATION + FOF_SILENT;
  end;
  Result := (SHFileOperation(fo) = 0);
end;
 
function ClearDirectory(const DirName: stringconst IncludeSub, ToRecyle: Boolean): Boolean;
{
  清除目录
}
var
  fo: TSHFILEOPSTRUCT;
begin
  FillChar(fo, SizeOf(fo), 0);
  with fo do
  begin
    Wnd := GetActiveWindow;
    wFunc := FO_DELETE;
    pFrom := PChar(DirName + '\*.*' + #0);
    pTo := #0#0;
    fFlags := FOF_SILENT or FOF_NOCONFIRMATION or FOF_NOERRORUI
      or (Ord(not IncludeSub) * FOF_FILESONLY)
      or (ORd(ToRecyle) or FOF_ALLOWUNDO);
  end;
  Result := (SHFileOperation(fo) = 0);
end;
-----
2010中的用法 更简单

uses
  IOUtils;

procedure TForm1.Button1Click(Sender: TObject);
begin
  TDirectory.Delete('D:\TDDownload\fa', true);
end;
true时可以删除非空文件夹
 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
浅谈数值分析(附数值分析用到相应Matlab的函数)发布时间:2022-07-18
下一篇:
matlab:jacobi迭代法工具箱发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap