「'HWND'と'String'には互換性がありません」

解決


うさこ  2003-10-24 19:54:04  No: 5399

こんにちは。
いつも参考にさせていただいております。

現在、Excelのファイル出力の処理を行っております。
ファイルはまず雛型のファイルをコピーして作成しています。

処理自体は、下記で問題なく行えます。

ただ、出来れば下記のモジュールを他のAPと共有したい為、
別のUnitに移動させたいなと思うのですが、
移動させると、
「'HWND'と'String'には互換性がありません」
「'String'と'HWND'には互換性がありません」
というコンパイルエラーが発生してしまいます。
移動させたいが為にHandleも引数に持ってみたのですが・・・

このような事の実現は無理なのでしょうか?
何か情報をお持ちの方、ご教授下さいませ。

Delphi7を使っています。

             :
   if funcFileCopy(gsScheltonPath, sOutputPath, Handle) = false then
   begin
      exit;
   end;
             :

function TForm1.funcFileCopy(psFromPath: string; psToPath: string; phHandle:HWND): boolean;
var
   sFileName         : string;
   foStruct          : TSHFileOpStruct;
begin
   result := false;

   with   foStruct   do
   begin
      wnd                     :=  phHandle;
      wFunc                   :=  FO_COPY;
      pFrom                   :=  PChar(psFromPath + #0);
      pTo                     :=  PAnsiChar(psToPath);
      fFlags                  :=  FOF_FILESONLY  or FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
      fAnyOperationsAborted   :=  False;
      hNameMappings           :=  nil;
      lpszProgressTitle       :=  nil;
   end;

   if (SHFileOperation(foStruct) <> 0) or (foStruct.fAnyOperationsAborted) then
   begin
      exit;
   end;
   result := true;
end;


masayan  2003-10-25 00:38:46  No: 5400

funcFileCopy関数の先頭に"TForm1."が付いていたので気になったのですが、funcFileCopyという関数を別のユニットにするのであれば、そのユニットは...

unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ShellApi;

function funcFileCopy(psFromPath: string; psToPath: string; phHandle:HWND): Boolean;

implementation

function funcFileCopy(psFromPath: string; psToPath: string; phHandle:HWND): Boolean;
begin
  <中身省略>
end;

end.

という感じになりますよね。


うさこ  2003-10-25 02:25:04  No: 5401

masayanさん、いつもありがとうございます。

そうですよね。
おっしゃる通りにして何度試しても駄目だったのですが・・・

今一度チャレンジしてみたら・・・
上手く行きました・・・

すみません。お騒がせしました・・・
きっとお聞きしたから上手くいったのです

ありがとう御座いました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加