こんなことをしようと思ってるのですがうまくいきません。
開発者A
・mainA.pas, sub.pas (どちらもハードディスクにあるのでビルドOK)
開発者B
・mainB.pas, sub.dcu (sub.pas sub.dfmは見れないようにしたいのでdcuだけハードディスクにコピー)
開発者Aは当然ビルドできますが、開発者Bはビルドすると「sub.dfmが見つかりません」と出ます。
コンパイルしたdcuがあればいけるのかと思ったのですがだめなんでしょうか?
dcuのフォルダをディレクトリ検索パスに追加しましたがだめでした。
ライブラリーパスにも追加しましたがだめでした。
何か手はあるでしょうか?
Delphi2007です。
ソース(dprファイル)の内容は?
dfmはリソースファイルに分類されるものですので、
コンパイルされたソースコードの中間形式であるdcuには含まれません。
dcuと一緒に配布する必要があります。
また、dfmはコンパイル後はほぼそのままの形でexeに格納されますので、
いくら隠したところでリソースエディタなどを用いればexeから簡単に読み取れます。
どうしても隠したいのであれば、IDEでのフォーム設計を使わず、
以下のようにすべてコードで生成するしかないと思います。
var
form: TForm;
button: TButton;
begin
form := TForm.Create(Application);
button := TButton.Create(form);
button.Parent := form;
button.Caption := 'OK';
button.Left := 8;
button.Top := 8;
// その他必要なコンポーネントの生成
// ...
form.Show;
end;
jazzinさん、ありがとうございます!
dfmもコピーしたらエラー出ないでちゃんとビルドできました!
pasはコピーしてないのでこれで情報公開せずに開発を頼む事ができます。
ありがとうございました!
ツイート | ![]() |