Delphi常用操作

TList-结构-指针

  pListData = ^TListData;

  TListData = record

      aID   : Integer;

      aStr  : String;

      aBool : Boolean;

  end;


 

  mmList := TList.Create;

  for I := 0 to 2 do begin  //添加

    new(mmpListData);

    mmpListData^.aID  := I;

    mmpListData^.aStr := '字符'+inttostr(I);

    mmpListData^.aBool:= true;

    mmList.Add(mmpListData);

  end;


 

  for I := 0 to mmList.Count - 1 do memInfo.Lines.Add(Format('%d %s',

    [pListData(mmList[I])^.aID,pListData(mmList[I])^.aStr])); //显示


 

  for I := 0 to mmList.Count - 1 do FreeMem(pListData(mmList.Items[I]), SizeOf(TListData)); //删除

  mmList.Clear;

  mmList.Free;

流操作

var

  mmFS : TFileStream;

  mmMS : TMemoryStream;

  memInfo.Lines.Text := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

  mmMS := TMemoryStream.Create;

  memInfo.Lines.SaveToStream(mmMS);

  mmMS.Position := 4;                 //指针位置(从0开始计数)

  memInfo.Lines.LoadFromStream(mmMS); //ABCD没了

  mmMS.Free;

 

  mmFS := TFileStream.Create(gPath+'Img\Test1.bmp',fmOpenRead or fmShareExclusive);

  Image1.Picture.Bitmap.LoadFromStream(mmFS);

  mmFS.Free;

 

  mmMS := TMemoryStream.Create;

  Image1.Picture.Bitmap.SaveToStream(mmMS);

  mmMS.SaveToFile(gPath+'Img\Test2.bmp');

  mmMS.Free;

Read:将数据从流中读出  Write:将数据写入流中  Seek:流中读取指针的移动  Setsize:改变数据的大小

文件操作

fmCreate :用指定的文件名建立文件,如果文件已经存在则打开它。

fmOpenRead :以只读方式打开指定文件

fmOpenWrite :以只写方式打开指定文件

fmOpenReadWrite:以写写方式打开指定文件

fmShareCompat :共享模式与FCBs兼容

fmShareExclusive:不允许别的程序以任何方式打开该文件

fmShareDenyWrite:不允许别的程序以写方式打开该文件

fmShareDenyRead :不允许别的程序以读方式打开该文件

fmShareDenyNone :别的程序可以以任何方式打开该文件

键盘

Self.KeyPreview := true;    //Form可以接收键盘操作

文件拖放

定义              OLD_panDropWndProc  : TWndMethod;

处理过程       procedure DragFileProc(var Message: TMessage);  //拖放文件的消息

初始化

DragAcceptFiles(panDrop.Handle, True);      //使得panDrop控件接受文件拖放 Use ShellAPI

  OLD_panDropWndProc := panDrop.WindowProc;   //保存panDrop原来的 WindowProc

  panDrop.WindowProc := DragFileProc;         //设置新的 WindowProc,支持文件拖放

消息处理

var

  FileNum: Word;

  p: array[0..254] of char;

  mmFName:String;

begin

  if Message.Msg = WM_DropFiles then  begin

    FileNum := DragQueryFile(Message.WParam, $FFFFFFFF, nil, 0);    // 取得拖放文件总数

    for FileNum := 0 to FileNum - 1 do    begin

      DragQueryFile(Message.WParam, FileNum, p, 255);               // 取得拖放文件名

      mmFName := trim(StrPas(p));

      //mmFName := StringReplace(mmFName,'\','\\',[rfReplaceAll]);

      memInfo.Lines.Add(mmFName);

    end;

  end else OLD_panDropWndProc(Message);   //其他消息,调用原来的处理程序

end;

 

转载于:https://www.cnblogs.com/wxc7009/p/5856343.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值