1 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 00:50:40 ] Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を 勇気を持って書き込むスレッドです。 Delphi使いが優しくコメントを返しますが お礼はDelphiの布教と初心者の救済をお願いします。 <前スレ> くだすれDelphi(超初心者用)その47 pc11.2ch.net/test/read.cgi/tech/1214292265/ <過去スレ> DelWiki避難所(Delphi 関連の過去スレッド) delwiki.info/?%E3%83%AA%E3%83%B3%E3%82%AF%2F%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%2FDelphi%20%E9%96%A2%E9%80%A3%E3%81%AE%E9%81%8E%E5%8E%BB%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89
237 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 20:39:27 ] バージョンアップしなくても「Delphiならではのメリット」は変わらんだろ・・
238 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 22:22:05 ] 昔、Delphi 7 では、デバッグでカーソルを変数に合わせるだけで値をインスペクトできた。 先日、Delphi 2006 を借りて使ってみたら、それができないじゃん。 新しい Delphi ではどうなっているのか知ってる人、どーか教えてくだしゃい。
239 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 22:40:42 ] >>236 おれんとこにも来たな、特待販売の葉書。 見たら会社名に「エンバカデロ・テクノロジーズ」って書いてある。 エン バカ デロ は、日本じゃアウトだろフツー。 C++Builder でまともなプログラム組めたことなかったし、 Delphi 2005, Delphi 2006 も安定しなかったんでまともに使ってなかったし、 エン「バカ」デロ Delphi と C++Builder はマジで悩む。
240 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 22:42:04 ] えっ?できますよ?
241 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 22:50:35 ] >>239 うわぁ・・・
242 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 22:54:41 ] >>239 安定しなかったってどういうこと? ちなみに、Delphi7で業務アプリ作ったけど、その時は割と安定してたけどな。 Delphiで気になるのは、ネイティブコンパイルと、VCLかな。 ビジュアルコンポーネントの使い勝手は優秀だと思った。 StringListとかObjectListなどの非ビジュアルコンポも優秀だけど、 いまじゃC#でもList<String>とかで代用できてしまうし、 コンポーネントもVCLライクに仕上がって遜色ない出来になってるしなぁという感じで悩む。 ま、.NETFrameworkがないと動作しないのは相変わらずなんだけど。
243 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 23:33:59 ] Delphi7は安定していたが、Delphi 2005は統合環境がなぜかフリーズしまくり。 Delphi 2006 はコードエディタな若干不安定で、箱形コピペなどすると、ずれ てペーストされる。また、何もしなくとも、しばらくするとCPUを食うよ うな処理が統合環境内部で起こる。そして、Delphi7より何か重たい。 また、>>238 のように、デバッグでカーソルを変数に合わせるだけで値を インスペクトできない。(あれは便利だった!!!!) これらの現象は、コードギアが提供したパッチを当ててもダメだったんだな。 そんで、今もDelphi7を使っているんだよな、おれ。 ただし、どこかにあったGoogleMap を組み込んだデモだけは、Delphi7では コンパイルできなかったのでDelphi 2006 で試したらうまくいった。 ハーア、何かうまくゆかないもんだな。
244 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 23:38:21 ] >>240 >えっ?できますよ? えっ?できるの?
245 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 23:46:46 ] >244 >238のことですよね?できますよ。もちろんローカル変数ウィンドウでも評価ウィンドウでも見られますけど、 変数にカーソルをあてるだけでインスペクションできるし、最近のものでは構造体のメンバやポインタの 示す先を追っていくこともできます。できないバージョンは(Personal/TurboExplorerを除けば)ないんじゃないかな?
246 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 23:47:58 ] × できないバージョンは(Personal/TurboExplorerを除けば)ないんじゃないかな? ○ Delphi5以降でできないバージョンは(Personal/TurboExplorerを除けば)ないんじゃないかな?
247 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 00:00:42 ] >>238 >>244 「メニュー」ツール → オプション 「オプションダイアログ」 エディタ設定 → 支援機能 → ツールチップ式評価 をチェックでOK デバッグの機能なんだけど、「デバッガオプション」ではなく「エディタ設定」にあるのがミソ
248 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 12:33:02 ] IDEが不安定ってことなのか。 いつからかIDEが.NET上でしか動作しないようになったんかな。 若干、重いイメージは確かにあったけど。 ネイティブで動作させることを目的としなければ、VS2005移行で十分に Delphi並のRAD環境になってるから、選択に難しいところではあるよね。
249 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 12:58:37 ] IDEは.Netだけど、コンパイルされるコードはネイティブ。
250 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 14:05:53 ] D2009はIDEはネイティブでそ? ヘルプのために.NETがいるだけで
251 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 14:30:54 ] Delphiって算術シフトの演算子ってないの???
252 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 14:35:28 ] shlとshr
253 名前:ななしへたぐらま ◆XcB18Bks.Y mailto:sage [2008/11/26(水) 17:34:36 ] >>251 ビットシフトこのとでしたら shl、shr で。 綴りで分かるかもしれませんがそれぞれ左シフト(SHift Left)と右シフト(SHift Right)。
254 名前:ななしへたぐらま ◆XcB18Bks.Y mailto:sage [2008/11/26(水) 17:35:51 ] って一番下の252が見えてなかった…すいません
255 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 18:56:32 ] ファイルの先頭からあるバイト目からをMemoに読み込むにはどうしたらよいのでしょうか? というのも、ファイルの先頭にいらない物が付いていてそのまま
256 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 18:59:58 ] 途中送信してしまった・・・orz ファイルの先頭からあるバイト目からをMemoに読み込むにはどうしたらよいのでしょうか? というのも、ファイルの先頭にいらない物が付いていてそのまま Memo1.Lines.LoadFromFile(Filename); とやっても文字化け?して読めないんです。 でもその無駄なのを取り去ってやるとMemoに読み込めます。
257 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 19:14:15 ] >>256 それはウニコードだね
258 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 20:13:55 ] >>256 TFileStreamとかAssignFile・Seek・Readで読み出せばいいはず TFileStreamの方が簡単・VCL的なのでおすすめ procedure TForm1.ButtonClick(Sender: TObject); var Stream: TFileStream; begin Stream := TFileStream.Create(Edit1.Text, fmOpenRead or fmShareDenyWrite); try Stream.Seek(10, soFromBeginning);//10バイト飛ばして読む Memo1.Lines.LoadFromStream(Stream); finally Stream.Free; end; end; >>257 うんこーどと断定できるとかすげえな
259 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 01:16:21 ] Delphi 2006でコンポーネントのインストールをしたい。 だが、「コンポーネントのインストール」がメニューから消えており、 HELPで「コンポーネントのインストール」を検索すると 『コンポーネントコンポーネントのインストール』 このダイアログボックスでは,コンポーネントを新規パッケージ または既存のパッケージにインストールします。 とある。 いったい、どうやってダイアログボックスまでたどり着くのだろう? どなたか教えて下され。
260 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 01:47:15 ] >>259 2006のヘルプを見ろよ >すべてのコンポーネントはパッケージとして IDE にインストールされます。したがって, >ユーザー自身がコンポーネントを作成するときには,まずそのコンポーネントを入れる >パッケージを 作成してコンパイル する必要があります。コンポーネントのソースコードは, >コンポーネント作成の概要 で説明されているモデルにしたがって記述する必要があります。
261 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 10:21:20 ] >>260 なるほど、Delphi2006は 「ファイル」メニュー から辿ってパッケージを作るようになってたんだ。 Delphi7では 「コンポーネント」メニュー からいきなり「コンポーネントのインストール」ができ、そこで パッケージを新規に作成してたんで(これには)気付かなかった。Delphi2006のように パッケージ・プロジェクトとして開発する方が、Delphi7のときよりも少しだけ楽だね。 助かった。ありがとうございました。
262 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 12:57:36 ] Turbo DelphiでFastMM4.90を利用しています。 デバッグ時にステップ実行していると、メモリの確保や解放時などFastMMのソースに飛ばされます。 これを無視したい(デバッガがFastMMのコードまで追わないようにしたい)のですが、どうすればいいのでしょうか。
263 名前:262 mailto:sage [2008/11/27(木) 13:03:36 ] とりあえず、コンパイラ指令の{$D-}をFastMMのソースに加えることで抑制しました。
264 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 13:33:23 ] ソースに飛べないようにすればいいじゃない 削除するなり移動するなり
265 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 12:38:27 ] >>264 そーすると、例外が起きるたびにソースを要求されるそーすよ。
266 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 13:19:11 ] そーすね
267 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 14:04:42 ] ___ ,,r''"´ `"''-,, / ノ ヽ、 \ / ( ● ) ( ● ) ヽ ヽ i゛ :::⌒(__人__)⌒::: ヽ ゛i l |r┬-| l ノ そーなんすかwww ! | | | レ' l l | | | l , l | l `ー'´ | l l ! l ,! | l l ゛i / l i゛ ゛i ヽ / / / ヽ,__,,,ゝ く ノ / ヽ ゛" / __ _ ) 、(二"'''ー'"ー'__゛゛ヽ r'  ̄  ̄ヽ,)‐-,,_ ´┴'ノ ヽ__,,-──-、__,ノ
268 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 10:34:14 ] FastMMがいつの間にやら新しくなってたので落とそうと思ったらアカウントが必要になってたのね そう思って登録しようとしても、必要事項書いてRegistration押してもその後何にも起こらん どうすりゃいいの?メール来るのかと思ったら来ないし
269 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 10:38:09 ] とりあえずお前が英語苦手だってことは理解した
270 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 10:41:19 ] >>268 ダウンロードにパスなんて必要ないんだけど
271 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 10:41:46 ] パスじゃなかったアカウントだ
272 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 10:52:54 ] あれー?Download押すとトップページに飛ばされるから そう思ってた。俺だけ?
273 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 10:58:33 ] sourceforge.net/projects/fastmm/ →Download→FastMM 4.92→FastMM492.zipだろ? どこで踏み外せばいいんだ
274 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 12:18:31 ] すぐ上で言ってるとおり、Downloadだよ 俺だけのようだ…会社でも家でも同じだったんだよなあ なんでだろ
275 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 12:22:10 ] ブラウザのせいだったようだ すまんです
276 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 12:26:34 ] どんな糞ブラウザ使ってんだよw
277 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 13:40:11 ] Turbo Delphiを使用しています。 ローカルバックアップの保持ファイル数の上限を増やすことはできるでしょうか?。 私の環境では、どうも100個くらいしか保持してくれないようです。 これを1000個くらいまで保持してくれれば、個人的にはだいぶ楽になるのです。 よろしくお願いします。
278 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 13:43:03 ] あまりそれでがんばらずに素直にバージョン管理システム使ったら。 TortoiseSVN + pdumpfsの組み合わせて使ってるけどソース紛失で泣く事はなくなったな。
279 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 14:02:22 ] >>278 どうも。 IDE標準の、変更のたびにバックアップが作成されるというのは、 利点でもあり弱点でもありますね。 トイレに行った後、レジストリの方も調べてみましたが、 BDS-4.0-Editor-OptionにあるFile Backup Levelというキーで、 上限を増やせるようです?(実際に増えるかは未確認)。 当座はこれでしの(げるならしの)ぎます。教えていただいたソフトウェアについても、 調べてみたいと思います。ありがとうございました。
280 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 22:00:56 ] かなりくだらない質問なんですが 皆さんbegin...endのbeginをどこにで書いてますか? 例えば if hoge then begin hage; end; とか if hoge then begin hage; end;
281 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 22:07:05 ] >280 俺は上派だな。elseがある場合は下みたいな感じ。 if hoge then begin end else if mage then begin end else begin end; VCL内でも統一した書式はないと思う。
282 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 23:55:55 ] 懐かしい議論だ。俺は下派。
283 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 23:58:51 ] 使ってるモニタ次第 UXGAでちまちま詰める必要はないし ノートで縦にだらだら書いてたら確実に生産性が低下する
284 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 00:02:59 ] モニタでいちいち書式かえたらよけい生産性が下がるわな・・
285 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 00:15:54 ] 以下のような書き方してる。 if hoge then begin end else if uge then begin end else then end; って書いてる。 ifのブロックとelseのブロックがend挟んで分離されるので、一目でどこまでがifのブロックか見分けることができると思う。 ただし、hogeが長くなったり複数行になる場合は、例外として、 if (hogeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee) and (ugeeeeeeeeeeeeeeeeeeeeeeeeeeeeee) then begin end; としてる。 beginが右の方に行き過ぎて、書いたかどうか分からなくなるから。 もし本当に書き忘れたり、うっかり削除すると、endの対応が一致しないってエラーに悩まされる。あと、思い込みのミスもあるし。 前回のコンパイルから時間が経ってると、どこ直したか忘れて、一カ所ずつ探すはめになるので。 こまめにコンパイルすればいいんだけど、気持ちよく書いている時って、しばしば忘れるんだよね。 また、質問と外れるけど、 if hoge then syoti1; syori2; って書いちゃって、なんでsyori2が常に走るんだって、悩むことになるから、if hoge then Exitのような単純な場合を除いて、ぶら下がりインデントは使用しない様にしてる。 基本的には、自分は間違っていない!という思い込みのミスを避ける方向に書くようにしてる。
286 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 01:56:00 ] パスカルの生みの親ビルトが頭弱かったから、汚い begin end がプログラムを醜くしてしまった。 単文、複文なんて、関係ないのにね。 まあ、おいらもバカだが、if 文は次のようなものが分かり易いと思っている。 <else 句がない場合> <else 句がひとつある場合> <else句が複数ある場合 ※ef はelseifの意> if 条件式 then if 条件式 then if 条件式 then 文 文 文 endif else ef 条件式 then 文 文 endif ef 条件式 then 文 else 文 endif
287 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 01:59:08 ] でも、endif も ef も予約語にないから、そこでおいらは次のようにしているんだ <else 句がない場合> <else 句がひとつある場合> <else句が複数ある場合> if 条件式 then begin if 条件式 then begin if 条件式 then begin 文 文 文 end end else begin end else if 条件式 then begin 文 文 end end else if 条件式 then begin 文 end else begin 文 endif これで begin end に目を奪われにくくなるんで、ちょいバグだしにくくなったかな(って気がしてるだけかも)。
288 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 02:04:49 ] >>286 で書き忘れたけど、式の中の「文」は、単文でも複文でもいいと思ってくれ。
289 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 10:31:39 ] if 条件 then begin end else if 条件 then begin end else begin end; よくこういう議論を見かけるが、俺と同じやり方の奴って 見たこと無いんだよなー
290 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 10:32:54 ] お前は俺か
291 名前:280 mailto:sage [2008/12/01(月) 11:43:21 ] 皆さんありがとうございます。 よくbegin...endの数が合わなくてエラー出てたもんで皆さんはどんな感じで書いているのか気になったんです。 教えていただいたものを色々試してみたいと思います。 とても参考になりました。どうもありがとうございました。
292 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 11:44:03 ] それはお前の頭が悪いww
293 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 12:02:36 ] でもさ、前々から思ってたんだけど、 ALT+[とかで対応する括弧は追えるのに なんでbegin/endは追えないんだろ?
294 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 12:03:28 ] >>287 くだらねぇ、気持ち悪いルール使ってんじゃねぇよ。基本はdelphiならVCL、JavaならJavaのクラスライブラリ のソースに合わせろよ。おまえらなみたいな奴のソースは見苦しくてかなわんわ。
295 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 12:43:40 ] こういうのが沸くからアンケートネタはWikiの投票pluginかなんかを使ってやってくれ
296 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 14:32:29 ] 以下のように記述するのが正式だというのを海外のサイトで読んだことがある。 if 条件 then 文 else if 条件 then 文 else 文; if 条件 then begin 文 end else begin 文 end; 文が短い場合は if 条件 then 文 else 文; って書いちゃうけどね。
297 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 15:08:49 ] 書き方に正しいも糞もあるかよww
298 名前:ななしへたぐらま ◆XcB18Bks.Y mailto:sage [2008/12/01(月) 16:29:02 ] >>286 QuickBASICやVisual Basicではまさにそんな感じの構文になっていて使いやすかったです。 >>293 C/C++の { } ほどの地獄ではないからかもしれません。
299 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 17:54:25 ] >>286 のおいらだが、おいらが C++ 使いだったころ、次の#define プリプロセッサで >>286 の構文が コンパイラー通るようにしていたんだ。 #define if if( #define then ){ #define else }else{ #define ef }else if( #define endif } てな感じだったけかな(?)。しばらくやってないんで忘れてしまったけどね。その他 for(;;) 構文なんかも 「 for 初期値 to 終了条件 step 増加式 do 文 endfor 」とか if と同じ要領でやっていた。 プログラムがスッキリしてたね。なんせ、おいら if や for の後の ( ) が大嫌いだったからね。 これいらないと思う。C言語作った男もおいらに負けず相当オタンコナスだね。 まあ、この構文(>>286 )でソースコードを渡すと、相手はビックリしてたっけ。おいらもかなりバカだね。
300 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 19:05:19 ] 融通が利かない人はどんな職業でもいい発想ができない。
301 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 19:30:57 ] case ofのかっこいい書き方を教えれ どうもelseだけしっくりこなかったりする
302 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 19:43:44 ] たしかにcase文はうざい
303 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 19:50:59 ] case n of 1: foo; 2: begin bar; end; else baz; end;
304 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 20:13:24 ] case n of 1: foo; 2: begin bar; end; else baz; end;
305 名前:Delフサギコ ◆A6VzDeLphI mailto:sage [2008/12/01(月) 21:52:39 ] ∧,,∧∩ おれ、こんなん。 ミ,,゚Д゚彡 ミ つ旦.ミ if then begin end else if then begin end else begin end; if が何個ならんでも、行頭を揃えたい気がするのです。 Caseはいつも悩む。 ifを、caseに変更したときに、begin...endをわざわざ インデント変更したくないから case A of B: begin end; C: begin end; end; //case かな。。行が増えすぎと、caseのendとbeginendが分けにくくていやなのだが。。
306 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 23:27:22 ] おいらも case 文は苦手だったな。どうやってもキレイに書けない。しかし、だいたい次のようにやってた。(case の範囲を字下げではっきりさせたいんだな、おいら) case A of B: 文 C: begin 文; 文 end D,E: 文 else 文 end case 文を 「case A of :値: 文 :値: 文 end 」とビルトが設計すればよかったかもね、次のようにスッキリする。(「文」は単文でも複文でも可だよ) case A of :B: 文 :C: 文; 文 :D,E: 文 else 文 end
307 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 23:34:44 ] 気持ち悪い
308 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 23:42:18 ] caseの中はcaseより引っ込める ラベルの中身も引っ込める、begin-endの中も引っ込める ラベルの後ろにbeginを書くと、対応するendもおなじインデントに書きたい 横に伸び〜
309 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 23:43:14 ] case〜endの間を字下げで解決。
310 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 23:44:53 ] typeのクラス宣言内のprivateなprocedureとか、自動生成で変なインデントを付けられた日にはもうー
311 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 23:47:30 ] record型のconstの配列の初期化の記述がめんどくさい コンパイラサボりすぎ
312 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 23:51:10 ] >>308 おいらもおんなじ気持ちだけど、これやるとインデント深くなるんだよなあ。 だからおいらはインデントをスペース3文字分にしてるんだが、それでも深くなる。 これがインデントがスペース8文字分で表示された日にゃー目がぶっ飛ぶ。
313 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 08:08:53 ] え!Del党ってインデントはスペース2文字でしょ。
314 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 08:42:41 ] オレは2文字だな。 if 〜 then begin 文 end else if 〜 then begin 文 end; case i of 1 : begin 文 end; end;
315 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 08:51:14 ] caseとelseとendをそろえてる。 caseに関しては自動インデントを使わずなるべく詰める様にしている。 17インチCRTからの流れで横も縦も圧縮する様な書き方になってしまった。 ifなんかでも改行してbeginの方が見やすいのに。
316 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 09:22:53 ] >>305 ifが常に行頭だと、別のif分と区別がつきにくいから嫌だな case分は無駄にインデントが増えるな case hoge of A: begin end; B: begin end; else end; これでやると、else内だけインデントがずれるのがむかつく
317 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 09:23:34 ] if分、じゃなくてif文だし、case分じゃなくてcase文 orz
318 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 11:01:35 ] >>313-314 インデント2文字でやってみたことあるんだけど気に入らなかったんだな、おいら。 なぜかっていうと、(一番多用される)if文のときインデント2文字だと i f a = b then begin c:= 2; ........ のようになって、この例で説明すると変数 a と c の頭が揃わないので美しくない。それに if の近くに変数 c がありすぎて if が窮屈に見える。これをインデント3文字にすると i f a = b then begin c:= 2; ........ となって、こっちの方がスッキリして見えるんだな、おいらの目には。(if文重視なんで) まあ、バカなおいらの好みだけどね。 そんで、クラス宣言の自動生成がインデント2文字固定なんで、苦労してる。
319 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 11:05:18 ] 秋田
320 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 11:07:07 ] >>318 の最初の例が崩れてたから訂正するね。 if a = b then begin c:= 2; ........ (2ちゃんは左側の半角スペース取っちゃうんだよね.....。)
321 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 13:14:15 ] インデントは2文字。 if文は>>305 に同じ。 大規模なcase文などではソースを折りたためるようにREGIONを使う。 case hoge of A: {$REGION '説明'} begin end; {$ENDREGION} B: {$REGION '説明'} begin end; {$ENDREGION} else end;
322 名前:321 mailto:sage [2008/12/02(火) 13:19:47 ] あ、if文は>>305 とは微妙に違った。 if then begin end else if then begin end else begin end; 個人的には、else(else if) 〜endまでの処理を消したり、 begin〜endまでの複数行の文を単数行の文に書き換える際に自然だからこれで落ち着いた。
323 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 18:24:36 ] どうせソースの書き方なんて十人十色なんだからいい加減飽きろよ
324 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 18:26:21 ] 新しい話題を提供しろよw
325 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 18:36:34 ] >324 「CodeGear RAD Studio 2009 日本語版」販売開始だって
326 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:47:10 ] delphiはなかなか良い言語だとは思うけど C++ライクに記述できるような仕組みがあれば、いいなぁ。 あと、delphiにC++を埋め込めるようにできれば、なおよし。 begin〜endはうざい。 あと、function/procedureと区別する意味がわからん。 C++歴5年、delphi歴3ヶ月より。
327 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:52:56 ] C++に、Pascalライクに記述できたらいいなあ。 なんて言われたら、ウザッとか思わない?
328 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:55:28 ] DLLとかC++ Builderとか使えば出来るけどね
329 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:55:43 ] >>327 そんな需要はないから。 delphiでC++ライクに使えれば、ポインタ使いまくれるし C++脳の人間にとっては、とても楽。
330 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:56:14 ] でもちょっと違うか
331 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:56:52 ] >>329 それは工夫が足りないんじゃね?
332 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:59:10 ] C++記述するときにはいつも 「もっとDelphiライクなら・・・」 って思っちゃう俺はアホなのかもしれん^^;
333 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 22:00:59 ] じゃあおまいらどんな記述がいいのよ
334 名前:デフォルトの名無しさん [2008/12/02(火) 22:21:56 ] 教えてください。 既存のプロジェクトなのですが、DataModuleのSession,Aliasのアイコンが半透明に なっています。 実行するとデータベースに接続するところで異常終了します。 つなげるべきデータベースはわかっているのですが、どのように設定したらよいので しょうか。
335 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 22:28:21 ] Pythonが綺麗って言われてるよね。 Delphiと似てるからすぐに使えるようになるよ。
336 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 22:28:27 ] begin end が { } ならDelphiが無敵
337 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 22:34:17 ] if True then { MessageBox(Handle, 'test', 'test', MB_OK); }; こうですか分かりません><