dfmとpasなしでビルドしたい

解決


ロック  2010-01-26 22:14:12  No: 37288

こんなことをしようと思ってるのですがうまくいきません。

開発者A
・mainA.pas, sub.pas (どちらもハードディスクにあるのでビルドOK)

開発者B
・mainB.pas, sub.dcu (sub.pas sub.dfmは見れないようにしたいのでdcuだけハードディスクにコピー)

開発者Aは当然ビルドできますが、開発者Bはビルドすると「sub.dfmが見つかりません」と出ます。
コンパイルしたdcuがあればいけるのかと思ったのですがだめなんでしょうか?
dcuのフォルダをディレクトリ検索パスに追加しましたがだめでした。
ライブラリーパスにも追加しましたがだめでした。
何か手はあるでしょうか?

Delphi2007です。


プロジェクトの  2010-01-26 23:36:33  No: 37289

ソース(dprファイル)の内容は?


jazzin  2010-01-27 00:09:45  No: 37290

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;


ロック  2010-01-27 00:21:00  No: 37291

jazzinさん、ありがとうございます!

dfmもコピーしたらエラー出ないでちゃんとビルドできました!
pasはコピーしてないのでこれで情報公開せずに開発を頼む事ができます。

ありがとうございました!


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

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






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