自作Procedureの'未定義'エラー解決方法

解決


サンデープログラマー  2006-05-22 15:43:23  No: 21694  IP: 192.*.*.*

いつもお世話になります。Win-XP + Delphi6/PersonalでVBからDelphiへの移植を始めたばかりですので多分初歩的な問題だと思いますが教えてください。

Procedure xxxxx;  を多用していましたが度々出てくる'未定義の識別子:'xxxxx'の問題に対してProcedureの位置を上にずらしたりすれば良さそうである、との経験からこれで対処してきました。ところが3000行近くになって入れ子が多いためか順序の設定がかなり複雑になってしまいました。何とかこの問題から開放されたいと思い解決方法があれば、とお助けを求めた次第ですのでよろしくお願いします。

編集 削除
インターフェース  2006-05-22 16:15:03  No: 21695  IP: 192.*.*.*

インターフェースの状況次第で答えが変わるので、C で言うところの「関数プロトタイプ」相当の部分を提示してください。

編集 削除
deldel  2006-05-22 16:16:36  No: 21696  IP: 192.*.*.*

Procedure xxxxx;
というのを、
TForm1.Procedure xxxxx;
と書き直し、
その行で、Ctrl+Shiftキーを押しながらCキーを押すと、Private 宣言に関数が登録されます。

編集 削除
えーと  2006-05-22 16:49:37  No: 21697  IP: 192.*.*.*

implementation より上に宣言だけしておけば、実装部では、すべて使えます。

編集 削除
記述  2006-05-22 17:04:48  No: 21698  IP: 192.*.*.*

実装部の記述が
Procedure TForm1.xxxx 〜形式のものは、
インターフェース部のクラス宣言内に(も)、
  Procedure xxxx 〜と(ヘッダのみ)記載。

実装部の記述が
Procedure xxxx 〜形式のものは、
implementation より上(つまりインターフェース部)に(も)、
Procedure xxxx 〜と(ヘッダのみ)記載。

編集 削除
サンデープログラマー  2006-05-22 17:53:11  No: 21699  IP: 192.*.*.*

deldelさん、えーとさん、記述さん、ありがとうございました。今までの苦労がウソみたいに解決しました。これで順序を気にしないでできますので能率は飛躍的に向上すると思いますので大いに助かりました。

最後に一つだけ質問させていただきます。いただいたアドバイスの中で
>>TForm1.Procedure xxxxx;
>>と書き直し、
>>その行で、Ctrl+Shiftキーを押しながらCキーを押すと、Private 宣言に関>>数が登録されます。

というものをいくつか試したのですがPrivate宣言は変化しませんが何かコツ、ルールみたいなものはあるのでしょうか?  これができると登録は更に簡単になると思います。

編集 削除
deldel  2006-05-23 08:47:38  No: 21700  IP: 192.*.*.*

ごめんなさい、
Procedure TForm1.xxxxx;
でした。

編集 削除
サンデープログラマー  2006-05-23 09:04:42  No: 21701  IP: 192.*.*.*

deldelさん、何度もすみませんが教えてください。
例えば  Procedure TForm1.GetSrcPic;  と書いて行の頭、末尾、行全体を選択などしてCtrl+Shift+'C'  を何度も試しましたが宣言部には何の変化もありません。  何かコツなどあるのでしょうか?  便利な技なのでマスターしたいと思います。

編集 削除
deldel  2006-05-23 09:17:40  No: 21702  IP: 192.*.*.*

こちらはDelphi5 Proですけど、
Procedure TForm1.GetSrcPic;
begin
end;
と書いて、
Procedure TForm1.GetSrcPic;
上のどこでもいいですからカーソルを置いて、Ctrl+Shift+'C'を行うと、
  private
    procedure GetSrcPic;
が生成されます。
Personalでは無理なのかなぁ・・・

編集 削除
deldel  2006-05-23 09:22:48  No: 21703  IP: 192.*.*.*

ちなみに、
    { Private 宣言 }
    procedure GetSrcPic;
と書いて、この行でCtrl+Shift+'C'を行うと、
procedure TForm1.GetSrcPic;
begin

end;
が生成されます。

編集 削除
えーと  2006-05-23 11:45:09  No: 21704  IP: 192.*.*.*

personal では出来ません。

編集 削除
サンデープログラマー  2006-05-23 12:32:59  No: 21705  IP: 192.*.*.*

deldel様、えーと様  了解しました。PersonalとProfessionnalの差を初めて体験しました。

製作段階の問題はこれはこれとしてソフトをPersonalで動かす上で上位ソフトとの決定的な機能的な差はどのようなところにあるか実感をお聞かせください。  Delphiのスキルも当方で使う程度であれば何とか克服できるかも知れないと過信しはじめ、そろそろProfessionalの購入も考えたいと思いますので。

編集 削除
めるめる  2006-05-23 12:41:34  No: 21706  IP: 192.*.*.*

データベース関連が Professional 以上から使用できます。
個人ユースであれば、BDE と PARADOX が標準で使用できるのが便利です。
ORACLE とか SQL-Server になると、さらに上位ソフトが必要です。

編集 削除
えーと  2006-05-23 14:19:32  No: 21707  IP: 192.*.*.*

Pro 以上の最大のメリットは、VCL のソースを読むことが出来ることです。

編集 削除
サンデープログラマー  2006-05-24 11:53:39  No: 21708  IP: 192.*.*.*

めるめる様、えーと様  ありがとうございます。
価格など調べて懐と相談をはじめることのします。

編集 削除