[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 07/05 09:41 / Filesize : 151 KB / Number-of Response : 533
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれDelphi(超初心者用)その48



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

207 名前:197 mailto:sage [2008/11/18(火) 21:56:01 ]
>>197
del5でもShortStringに変換して比較してた>AStrCmp
WideCharの比較でなんでShortStringが出てくるのかわからないけど、仕様ならしょうがないか。


208 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 21:58:34 ]
UnicodeStringへの添え字でのアクセスはShortStringになるのが関係ありそうでなさそうでありそう

209 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 21:58:57 ]
>>187
まあそれはそうなのですが、単純にブリッジ処理書くのが省ければなあ、
という用途で使おうと思ったら、
面倒くさい仕様なので残念!といったところなのです。

210 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 22:01:53 ]
Ordをかましたらどうだろ

211 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 23:44:44 ]
Orz

212 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 01:18:28 ]
delphiで、一部の文字の色を変えるエディタって簡単に作れるの?

213 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 01:21:26 ]
>>212
そんなこと聞いてるあなたには簡単ではないでしょうね

214 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 01:33:40 ]
richeditで出来るだろ

215 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 10:12:46 ]
Delphi2009のバージョンアップ版ってインストール時に
前バージョン(Delphi4持ってる、2は行方不明)の確認ありますか?
VBとの比較検討用だったんでユーザー登録もしてないんだけど...




216 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 11:05:41 ]
おそらく前バージョンのユーザー登録してないならアクティベーション通らないんじゃないかな?
CDNのアカウントで認証してるみたいだし。サポートに問い合わせた方がいいかと。


217 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 21:33:50 ]
>>192
TObjBでイベントを定義して、ObjBを生成したときに
イベントハンドラとしてObjAのメソッドをを代入するのがいい。

ObjAの参照を持たせるよりも結合度を小さくできる。

218 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 23:19:20 ]
特定のオブジェクトの参照を保持するのと、そのメソッドを保持するのと
結合度に差があるの? メッセージを送りたいんだから TObject の Dispatch()
を使えるし、だからすべてのクラスで参照を保持できたほうが汎用性の意味では
よりいいんでは?

219 名前:217 mailto:sage [2008/11/21(金) 01:04:58 ]
んー、どうだろね。
メッセージというのがwindowsメッセージやdelphiのディスパッチのメカニズムを
利用する話なら>>218で正しいと思うけど、>>189にはOOPの話と断りが入ってる。

OOPでのメッセージという用語はオブジェクト間のやりとりの総称なので、
メソッドの呼び出しなども当然に含まれる。俺はそういう理解で解答してる。

220 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 08:52:35 ]
>>186
なんかりんごの皮をチェンソーで剥いてる様な気がするのは俺だけ?

221 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 10:57:03 ]
そりゃ金の取れる芸のレベルだよ

222 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 10:58:45 ]
正規表現コンポに金使えばいいのか

223 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 11:12:54 ]
FreeMemにサイズを指定するメリットってあるんでしょうか?
Sizeが無指定だとちゃんと全部開放されないとかあるんでしょうか

224 名前:デフォルトの名無しさん [2008/11/22(土) 16:37:35 ]
Delphi6 Personal使ってます。
manifest適用時にTComboBoxのSelText、SelStart、SelLengthの値が
正しく取得できなくて困ってます。

Textに「あいうえお」と入力して「うえ」を選択したとき

SelText:
SelStart: 1
SelLength: 1

という結果が返ってきます。
半角だと問題ないのですが全角だとおかしくなります。

正しい値を取得するにはどうすればいいでしょうか?


225 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 17:31:56 ]
Delphi 2007でも同様の結果になるようですね。



226 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 18:26:08 ]
manifest適用しなければおk

227 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 12:04:15 ]
ユニコード対応のD2009じゃね?

Tntは修正が不完全だけど、一応使えるレベルだと思う。

228 名前:225 mailto:sage [2008/11/23(日) 13:08:12 ]
TNTComboBoxならSelStart/SelLengthは正常に取得できる。SelTextはTextをAnsiStringに
変換後に自前で変換すればいい。
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption := Format('SelStart=%d SelLength=%d SelText=%s',
[ComboBox1.SelStart,ComboBox1.SelLength,
Copy(AnsiString(ComboBox1.Text),ComboBox1.SelStart + 1,ComboBox1.SelLength)]);
end;


229 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 13:16:48 ]
TNTって無料版の開発終わったよね

230 名前:225 mailto:sage [2008/11/23(日) 13:34:43 ]
まーでも古い版はダウンロード可能だし。mh-nexusさんとことか。でもDelphi 6 Personalは別版が必要かも?

231 名前:225 mailto:sage [2008/11/23(日) 14:01:52 ]
TNTは現在はTMSで売ってる。
ttp://www.tmssoftware.com/site/tmsuni.asp
個人なら30Euro(3600円くらい)。

232 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 15:08:16 ]
有料版でも直ってないそうですね
まあ、英語圏の人は他言語IMEなんて使ってないだろうし

FastCodeの中の人なんて、LowerCaseのTable作りに
CharUpperBuff使っただけで、「Ansi」StringReplaceとか言っちゃってるしなぁ

233 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 15:10:37 ]
いけね、UpcaseのTableだ

234 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 21:47:14 ]
>>230
そのままだとコンポが足りないのでエラーが出るけど
ちょっと書き換えればD6Perでも動くよ

235 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 22:45:46 ]
DBとBandアクチョン削ればOKだったかな
で、必要な人はsoft-gemsのThemeManager入れる、と



236 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 18:14:27 ]
特待販売の葉書が来た。
久々にバージョンアップしてもいいかなぁと思ってるところ。
今C#を主に使用しているんだけど、Delphiならではのメリットっていうと、
VCLとネイティブコンパイルぐらい?

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 ]
気持ち悪い






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<151KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef