掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
関数がクラスのインスタンスを返してくる場合 (ID:7995)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
たかみちえさん、るるとん@Kさん、申し訳ありません。 私が提示したDoSomething関数の仕様が曖昧でした。 次のように訂正させていただきます。 function DoSomething(const Src: TBitmap): TBitmap; var Dest: TBitmap; begin Assert(Assigned(Src)); Dest := TBitmap.Create; { Srcのデータを使用してDestを加工 } Result := Dest; end; 戻り値をTBitmap型の変数に代入して、使用後に解放する ということでよろしいでしょうか? > 私見ですが、 > procedure DoSomething(Bitmap: TBitmap;var Dest: TBitmap); > として渡された変数Destを使って"戻り先として使うビットマップに、 > ビットマップをコピーする"ということをした方がいいかもしれませんね。 > この方が、ぱっと見"どのようなBitmapを必要としてる"のか、わかりやすいと思います。 > (好みだと思いますけど) おっしゃるとおりです。 その方が使用する側も迷わないです。 ただ、他の人が作った関数なので。(^_^;) > そういえば今気がつきましたが、ParamStr(0)は、自分のアプリケーションのフルパスです。 > (たとえばDelphiならH:\Delphi7\Bin\Delphi32.exe など) > アプリケーションと同じフォルダに保存したいだけの場合は、 > ExtractFileDirを使うといいですよ(IncludeTrailingPathDelimiterと併用するとよいかも)。 すみません、これはちょっと意味がわかりませんでした。 > ParamStr(0)は、自分のアプリケーションのフルパス これはわかります。 > アプリケーションと同じフォルダに保存したいだけの場合は、 > ExtractFileDirを使うといいですよ(IncludeTrailingPathDelimiterと併用するとよいかも)。 ExtractFilePathでなく、ExtractFileDir + IncludeTrailingPathDelimiter を使う方がよいのはなぜでしょうか?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.