我写了个类似与文本编辑器的东西
编辑的文件后缀名存为.sch
我把电脑.sch的文件对应用我的程序打开了
但是我双击打开.sch时候只是把我的程序打开了
并没有把那个.sch文件的内容加载到我的程序中
我想问问这个问题要怎么解决
就象打开word文件一样还有一个问题就是
怎么实现当我拖动一个文件到我的程序中的时候
程序自动打开这个文件?
想煤体播放器那样 两个问题各50分 望笑纳:)

解决方案 »

  1.   

    1.自己写代码判断,程序启动时,如果ParamStr(1)不为空,则打开这个文件
    2.程序判断当前拖入的文件类型后,如果是你的那种文件,写代码打开就行了-----------------------
    http://scsoft.agrie.com
      

  2.   

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      if ParamStr(1)<>'' then
      begin
          ////打开文件ParamStr(1),这个名字就是你点击的文件
      end
    end;
      

  3.   

    ParamStr(1)
    这个是什么东西??
    解释一下先!to :qiujsh(scsoft.agrie.com)
    能不能详细点??
    给个代码是最好的~~
      

  4.   

    ParamStr是命令行参数,当你点击后,系统把文件名当成参数传递给你的程序。在你的程序中,读出这个参数就是你点击的文件名。
      

  5.   

    OK!这个问题解决了
    谢谢 gzmhero(hihihi)
    还有个鼠标拖动的问题也帮忙看看怎么实现当我拖动一个文件到我的程序中的时候
    程序自动打开这个文件?
    想煤体播放器那样
      

  6.   

    user shellapi
    type
      TForm1 = class(TForm)
        ListView1: TListView;
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
        procedure AppMessage(var Msg: TMsg; var Handled: Boolean);///////消息处理函数
      end;
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    //设置需要处理文件WM_DROPFILES拖放消息
        DragAcceptFiles(ListView1.Handle, TRUE);
    //设置AppMessage过程来捕获所有消息
        Application.OnMessage := AppMessage;
    end;
    procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean);
    var
        nFiles, I: Integer;
        Filename: string;
        ListItem: TListItem;
    begin
    //
    // 注意!所有消息都将通过这里!
    // 不要在此过程中编写过多的或者需要长时间操作的代码,否则将影响程序的性能
    //
    // 判断是否是发送到ListView1的WM_DROPFILES消息
    if (Msg.message = WM_DROPFILES) and (msg.hwnd = ListView1.Handle) then
    begin
    // 取dropped files的数量
        nFiles := DragQueryFile (Msg.wParam, $FFFFFFFF, nil, 0);
    // 循环取每个拖下文件的全文件名
        for I := 0 to nFiles - 1 do////////支持拖动多个文件过来
        begin
    // 为文件名分配缓冲 allocate memory
            SetLength (Filename, 80);
    // 取文件名 read the file name
            DragQueryFile (Msg.wParam, I, PChar (Filename), 80);
            Filename := PChar (Filename);
    //file://将全文件名分解程文件名和路径
            ////////FileName为拖过来的文件,包括文件全路径。
    ///////////////////////此处实现对文件的操作
        end;
    //file://结束这次拖放操作
        DragFinish (Msg.wParam);
    //file://标识已处理了这条消息
        Handled := True;
    end;
    end;