高手请指教:
1. 我在程序的USES里加了“FileCtrl”单元,编译的时候总会有个“Warning”
   是:unit 'FileCtrl' is specific to a platform
2. 我想在程序里想动态在窗口上加一个Label,但运行是那个label出不来,也没提示
   什么错误,代码是这样的:
   procedure TForm1.Button1Click(...);
   var LabelPth: TLabel;
   begin
      LabelPth:=TLabel.Create(Self);
      LabelPth.caption:='122344';
      LabelPth.Left:=30;
      LabelPth.Top:=50;
      LabelPth.visible:=true;
   end;
3. 我自己做了个安装程序,但不知道怎么在程序里为一个EXE动态创建快捷方式?

解决方案 »

  1.   

    1,那个警告信息我忘记是为什么了,想想
    2,加上
    LabelPth.Parent:=form1;
    3.安装程序可以设定是否建立快捷方式的。
      如果程序控制自己建立,则
    procedure CreateLnkFile;
    var
      tmpObject: IUnknown;
      tmpSLink: IShellLink;
      tmpPFile: IPersistFile;
      PIDL: PItemIDList;
      StartupDirectory: array[0..MAX_PATH] of Char;
      StartupFilename: string;
    begin
      StartupFilename := Appname;
      tmpObject := CreateComObject(CLSID_ShellLink); //创建建立快捷方式的外壳扩展
      tmpSLink := tmpObject as IShellLink; //取得接口
      tmpPFile := tmpObject as IPersistFile; //用来储存*.lnk文件的接口
      tmpSLink.SetPath(pChar(StartupFilename)); //设定所在路径
      tmpSLink.SetWorkingDirectory(pChar(ExtractFilePath(StartupFilename))); //设定工作目录
      LinkFilename := ExtractFilePath(StartupFilename) + 'ATM-DVR.lnk';
      tmpPFile.Save(pWChar(LinkFilename), FALSE); //保存*.lnk文件
    end;
      

  2.   

    哦,那个警告没什么,不用管它。是说
    Filectl只适用于Windows平台,对其他的平台不使用
      

  3.   

    1,说它是平台相关的,说明你的工程不能到kylix下去编译,当然你在windows下用是没问题的。
    2,labelpth.Parent:= Self;
       注意:是不是还有点问题,没有释放资源的
      

  4.   

    你要指定谁来显示它
    LabelPth.Parent:=form1;
      

  5.   

    没有父控件当然不会显示了
    .Parent就是用来指定父窗体的   是LabelPth的媒介~~~~~~~~~