functionの使い方を簡単にするには?

解決


桜坂  2009-04-20 03:49:32  No: 34115

あまりにも初心者的で恥ずかしい質問ですが、教えてください。

普通、Delphiで処理を記述する場合、ボタンをクリックすると自動でprocedure  〜以下が出現します。
functionは、同じように自動で構文は出ないのでしょうか。

それとも、これは、ベタ打ちなのでしょうか。教えてください。
よろしくお願いします。


みんみん  2009-04-20 05:18:03  No: 34116

どうゆう動作を求めているのかわかりかねますが、
一つの方法として、少しの入力で定型の構文を出力するには
エディタオプションのコードテンプレートを利用してみるのも
いいかもしれません。


・・・  2009-04-20 06:32:48  No: 34117

どんなときに自動にしたいのでしょうかね?


ぺろ  2009-04-20 07:09:27  No: 34118

質問ばかりだと申し訳ないので・・・。

fを押して、Ctrl+jを押すと、ポップアップメニューが出ますよ。
forと関数宣言functionで、functionを選択すると、下のように。

function (): ;
begin

end;

エディターにもよるのかな?
Delphi6です。
あとは、ボタンを押したり、コントロール関係で、戻り値を要求する事は、、、通常ではあんまりないんじゃないかなー?

ちなみに、Ctrl+スペースキーだと、補完です。

あとは定型文は、顔文字貼り付けソフトとかを利用すると便利ですねー。


桜坂  2009-04-20 07:40:08  No: 34119

早速のご指導ありがとうございます。ボーっとして目的を書くのを忘れていました。当方、環境はDelphi7エンタープライズです。
実は、画像のデータを表示し別の場所に保存処理を行おうと考えています。そこでイメージ処理を勉強しようと、ITProのDelphi風林火山「第1回  画像とともに撮影情報などを表示するアプリケーションを作る」で勉強していました。しかし、現在、挫折中です。
というのは、途中に「function SwapDWord(const vValue: DWord): DWord;」「function ReadWord: Word;」などのfunctionが沢山出てきて訳が分からなくなっています。そこで、どこかのボタンをクリックすれば目的の構文が出てくるのだろうか?と安易に考えた次第です。
本日、初めてコードテンプレートを知りました。ありがとうございます。これから使い方を勉強します。
以上の状況です。私のレベルでも理解できそうな、構文が自動で出てくる方法があれば、教えてください。よろしくお願いします。


桜坂  2009-04-20 08:17:20  No: 34120

皆さん、ありがとうございます。
ぺろさん、ありがとうございます。
投稿文を書いており、気づきませんでした。
なるほど、Ctrl+Jやスペースがあるんですね。
また勉強になりました。
一応,delphi7のオフィシャルコースウエアは持っているのですが、こういう細かい操作は、どこに書いてあるのかも私には解りませんでした。
皆さんの教えは痒いところのツボにきます。
コードテンプレートとCtrl+Jのポップアップメニューで、私の希望する目的に近づきました。これを元に再度勉強してみます。
本当にありがとうございました。


ウォレス  2009-04-20 20:07:14  No: 34121

既に解決済みですが、
>クリックすれば目的の構文が出てくるのだろうか?

functionの定義に飛びたいときはctrl+クリックです。
(飛ぶ前に、ブックマークを付けといたほうがいいです)


桜坂  2009-04-21 05:36:58  No: 34122

ウォレスさん、ご指導ありがとうございます。
感謝しています。
解決のチェックを付けてしまいましたが教えてください。
「functionの定義に飛ぶ」とは、どういう事なのでしょうか。
Ctrl+クリックをしましたが、何もできませんでした。
私のやり方が悪いのでしょうか。


ofZ  2009-04-21 06:39:22  No: 34123

> 「functionの定義に飛ぶ」とは、どういう事なのでしょうか。
宣言のとこじゃなく、実際に使用している場所で、関数名をVtrl押しながらクリックすること


桜坂  2009-04-21 07:20:24  No: 34124

ofZさん、ご指導ありがとうございます。
例えば、あるアプリのFormat関数のところでCtrl+クリックをしたところ
・・・・・沢山の記述・・・そして、
function Format(const Format: string; const Args: array of const): string;
begin
  FmtStr(Result, Format, Args);
end;
という場所にカーソルがありました。
突然SysUtilsやStdCtrlsという画面が現れて驚いています。
なんか覗いてはイケナイ場面を見てしまった、という感じです。
私の操作は誤りなのでしょうか。


toc  2009-04-21 07:29:23  No: 34125

桜坂さんが求めているのは「自動的に新しい関数の雛形が出来上がる機能」
であって、すでにある関数の定義が知りたいわけではないと思いますが。
(○○関数と同じ宣言のはずだからコピーしたい、という場合には有用かな……)

ちなみに「ボタンをクリックすると自動でprocedureができる」と
おっしゃっていますが、それでできるのはイベントハンドラという
非常に限定された用途のメソッドだけです。
procedureだろうとfunctionだろうと、普通はベタ打ちするなりテンプレートを利用するなりするものだと思いますよ。


ofZ  2009-04-21 17:31:47  No: 34126

> 私の操作は誤りなのでしょうか。
それがウォレスさんの記述された「functionの定義に飛ぶ」ということです。
本スレの趣旨とは違います。
何もできないとレスがあったため、操作についてレスしました。

すでに解決されているので、別件として回答したのですが、ウォレスさんに
まかせてスルーしとけばよかったですかね?>tocさん


桜坂  2009-04-21 17:53:02  No: 34127

tocさん、ofZさん、そして皆さん、ありがとうござます。
寝てしまい、お礼の返事が遅れてしまったこと申し訳なく思っております。
改めてお礼申し上げます。ご指導ありがとうございます。
段々、自分でも自分の方向が判ってきました。
最初は、自分がどういう方向で悩んでいるか、適切に表現することも解らなく皆さんにご迷惑を掛けました。
tocさんに言われて、朧気ながら判ってきました。
そうです。「自動的に雛形ができる・・・」が、私の理想です。というか理想でした。
入門書や勉強のサイトでも、そのような事が記述されていたように記憶しています。
そして、「どんな記述でも、これでできるんだ・・・」という思いが、心の何処かに残ってしまったのです。
ofZさんに指摘され、改めて自分の知識の浅さも気づき勉強の深さを感じました。
もう少しテンプレートを勉強したいと思います。
皆さん、ありがとうございました。これからも機会があるとき、ご指導願います。


ウォレス  2009-04-21 18:40:07  No: 34128

全然見当違いなレスをつけて混乱させました・・申し訳ない。

雛形には、ぺろさんの書いているとおり、funcと打ってCtrl+jが基本でしょうか・・・
D2007だと、その後、function名を打つ→tab→引数を打つ→tab→戻り値の型を選択→rteurn→関数の中身・・・・
と行けます。

私は面倒でかつよく出てくる雛形は全部clcl(クリップボード支援ソフト)に登録していますので、C++Builder用の

AnsiString().sprintf("",)

とか、verilog用の

always @(posedge clk or negedge nrst) begin
  if(~nrst)
  begin
    
  end 
  else
  begin
  
  end
end  

とか、色々すぐに出せます。


桜坂  2009-04-22 04:09:25  No: 34129

ウォレスさん、ありがとうございます。
仕事で返事が遅れました。
私にとっては全て勉強です。
「・・・申し訳ない。」なんて、私のほうが恐縮してしまいます
クリップボード支援ソフト、というのも初めて知りました。
重ねてお礼申し上げます。
そして皆さん、お教え頂き、ありがとうございました。


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

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






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