1 名前:デフォルトの名無しさん [2008/02/10(日) 15:06:12 ] プログラミング言語 D (D Programming Language) について語るスレッドです。 過去スレは >>2 ■本家 ttp://www.digitalmars.com/d/ ttp://www.kmonos.net/alang/d/ (和訳) ■コンパイラ ttp://www.digitalmars.com/d/dcompiler.html (DMD, 本家) ttp://dgcc.sourceforge.net/ (GDC, gccフロントエンド) ttp://gdcmac.sourceforge.net/ (GDCのmac用バイナリ) ■参考URL ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究) ttp://dsource.org/ (dsource) ttp://tinyurl.com/3da5oa (C/C++に疲れた人のD言語) ttp://www.kmonos.net/alang/wnd/ (わかったつもりになるD言語) ttp://shinh.skr.jp/d/ (SDL, SDL_*, OpenGL, GLU, glutのポーティングとか) ttp://shoo.s20.xrea.com/shoo/programing (D言語とTangoの入門講座) ttp://www.nicovideo.jp/mylist/4453698 (D言語で作られた芝ゲー niconico動画) ■ IDE ttp://dronten.googlepages.com/dscite (DSciTE) ttp://forums.codeblocks.org/index.php?board=20.0 (Code::Blocks) ttp://www.dprogramming.com/entice.php (Entice Designer) ttp://www.dsource.org/projects/descent (Descent) ttp://www.dsource.org/projects/poseidon (Poseidon)
348 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:21:47 ] 普通にtry{} finally{}で何の問題があるんだろう…
349 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:00:32 ] 処理のフローが、各関数の呼び出し関係から暗黙に決まる、 ってのが美しくないところだと思う。 関数を合成して処理を作ること、処理を連結してフローを作ること、 これはそれぞれ別のまとまりとして定義されないと、処理フローが ぐちゃぐちゃになると思うよ。
350 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:16:09 ] tryはDだとWinMain内部でしか使ったことが無いや。
351 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:02:44 ] D言語BOF 日程:3月1日(土) 10:15 - 12:00 開始時間が変わりました 時間変更に伴い、以前登録された方も前半/後半を個別に登録してください f17.aaa.livedoor.jp/~labamba/?D%B8%C0%B8%ECBOF
352 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:57:23 ] >>310 俺もそう思ってたけどBOFのBillさんとか本気でつかってるぽい まあ研究職だからできるのかもしれんが
353 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:04:33 ] >>222 伝えるだけなら ココで出たバグ報告をnewsにポストする人と手間はかわらん しかしその後の議論についていきつつ説得するのは正直めんどい あと >>214 はあまり集まらないので没りそう
354 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:33:32 ] scope 関連は記述もわかりやすくなるし、 try ~ finally と違ってネストが深くならないしでかなり好きだ
355 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:37:42 ] たった一段のネストがそんなに気になるのかなあ?
356 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 22:57:49 ] 印刷することを前提に、80桁以上にならないように注意すると 途端に一段のネストが憎たらしくなるよ。
357 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:20:15 ] ネストが深くなりすぎるプログラムはダメなプログラム。
358 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 00:20:23 ] finallyとかscopeは、ドキュメントいわく 「実行される箇所ではなくそれが概念的に属する場所に配置されている」 というのがいい点だが、概念的にスコープに属している実行保障を わざわざtryブロックに付け替えるのは分かりにくくなる原因だよなと思う。
359 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 00:57:43 ] デバッグ用じゃないin、out、bodyみたいなのがあればいい感じ?
360 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 06:28:56 ] そろそろCLOSからbefore/afterをパクるのもいいな
361 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 14:38:36 ] void hoge() in { } out { } before { } after { } body { } 上から読むとなかなかbodyにたどり着けないな
362 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 15:14:01 ] 361みたいにするのは358な理由で分かりにくくなるだけじゃね?
363 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 16:43:09 ] >>354 自分は基本的にタブ8でインデント + 80桁でコーディングしてるのですごく気になる。 あと、 step1(); scope (failure) step1_end(); /* なんか処理 */ step2(); scope (exit) step2_end(); こんな感じのを try~finally で書くと鬱にならないか?
364 名前:363 mailto:sage [2008/02/25(月) 16:43:40 ] ミスった。>>355 ね。
365 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 20:26:47 ] >>363 それ、いわゆるtry…catch…finallyなパターンじゃない?
366 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 20:49:01 ] DMDがコンパイル中にエラーで落ちるのは良くあること?
367 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:32:55 ] なんのエラーだ
368 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:34:24 ] 内部エラー
369 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:41:58 ] >>363 これと等価かな try { step1(); step2(); } catch { step1_end(); } finally { step2_end(); }
370 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:46:17 ] >>366 よくある
371 名前:363 mailto:sage [2008/02/25(月) 21:55:24 ] また書き間違いだ…… なんでこんなミスを step1(); scope (exit) step1_end(); /* なんか処理 */ step2(); scope (exit) step2_end();
372 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:01:09 ] 面倒なのはfailureやexitがたくさんあるときだよね、きっと。 例外が発生した位置によってやるべきことが変わるから。 各段階にあわせた例外処理をするために別々のtry文を用意するか、 深くネストしたtry文で…って感じになるんじゃないかと。
373 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:53:05 ] >>371 try-finallyがネストするのがそんなに嫌か? 巻き戻す環境が違うんだから、ネストして当然だと思うが。 むしろ>>371 のほうが妙な制御依存が発生して嫌だ。
374 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:57:04 ] tab8で80桁て普通だよな。 マジでプログラムの質が悪いからネストした時辛くなるんだろ。
375 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:05:55 ] そして>>358 に戻る。
376 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:14:28 ] TAB8でもインデントは4だってさ
377 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:15:46 ] それでも>>371 みたいな書き方を推奨してるわけじゃないよね。
378 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:27:57 ] その辺の話は本家にあるよね。 www.kmonos.net/alang/d/2.0/exception-safe.html >>373 > try-finally による方法は、 概念的に関連している値のセットと復元コードが、 > 間に関係のないコードが挟まることでいくらでも離されてしまう危険性を含んでいます。 >>374 > try-finally による解決は、 リソースの初期化コードと巻き戻し処理のコードが分離して記述され、 > 実際ソースコード上で視覚的に大きく離れてしまします。 > しかし、密接に関連した処理は一カ所にまとまっているべきです。 >>377 > scope文だけでは例外のcatchはできませんから、try-catch も必要です。 > try-finally は、scope文によって冗長な構文となったと言えます。
379 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 03:24:07 ] 配列の要素の任意の組合せでイテレイトしたいのですがどうかけばいいでしょう ary = [1,2,3,4] から二個含んだ組合せなら foreach(e; combination(ary, 2)) { e; // [1,2],[1,3],[1,4],[2,3],... } こんな感じの処理にしたい. 参考にRubyで書くと def each_combination(ary, k) if k == 0 yield [] return elsif k == ary.size yield self return end duped_ary = ary.dup x = duped_ary.shift each_combination(duped_ary, k-1){|y| yield [x]+y } each_combination(duped_ary, k){|y| yield y } end each_combination(ary, 2){|x| p x } 御存知でしたら教えて下さい
380 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 06:52:40 ] 直訳した int delegate(int delegate(ref T[])) each_combination(T)(T[] ary, int k) { return (int delegate(ref T[]) yield){ if( k==0 ) { T[] empty = []; if(int r = yield( empty )) return r; } else if( k==ary.length ) { if(int r = yield( ary )) return r; } else { T x = ary[0]; foreach(y; each_combination(ary[1..$], k-1)) { T[] plus=x~y; if(int r=yield(plus)) return r; } foreach(y; each_combination(ary[1..$], k)) { if(int r=yield(y)) return r; } } return 0; }; }
381 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 08:35:49 ] >>374 いつの時代の人間だよ。 こういうこと言う奴って ts とか hmi とか訳分からん略した変数名使ってんだよな。 そっちのほうが最悪だっつーの。
382 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 09:01:12 ] 2chにコードとか投稿すると著作権持っていかれるんだよなあ…
383 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 10:25:41 ] 実質「公知のもの」になって委譲されるわけではないと思われ。 独占権は当然なくなるが。
384 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 11:43:25 ] >>383 info.2ch.net/kiyaku.html
385 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 11:58:54 ] >>384 著作権は「創作性」なるものがないと認められないんだが、 Dスレで張られてる程度のサンプルないし言語仕様の検証コードなら、 創作性なしと判断されるのが通例と思われ。
386 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 13:22:14 ] 委譲できる分だけ全部委譲させられるから問題なんだけど。 > 無償で非独占的に複製、公衆送信、 頒布及び翻訳する権利を投稿者に許諾します。 > また、投稿者は掲示板運営者が指定する第三者に対して、一切の権利(第三者に > 対して再許諾する権利を含みます)を許諾しないことを承諾します。 あたりのせいで、ここでコードを聞いて流用するとなると適用できない ライセンスが結構出てくる。 20行を越えるようなコードでも創作性はないってのが通例だってのは初めて聞いた。 そうなると、それよりはるかに大きい著作物の20行の断片だけを流用する場合でも、 その断片はもはや創作物として原形をとどめてないないんだな。
387 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 13:33:38 ] ttp://slashdot.jp/developers/article.pl?sid=06/10/23/0026258 とか3行で騒いでて何をやってるんだろうなあと思ったことはあるけどよくわからんな。
388 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 13:39:39 ] try{ Database database = MySQLDatabase.connection(); try{ Query query = database.compileQuery("select * from books"); try{ Result result = query.execute(); foreach(Row row; result){ ... } } finally { query.close(); } }finally{ result.close(); } }finally{ database.close(); } これがscope(exit)ですっきり上から下に書けるから嬉しい。 最初にnullで初期化してclose()前にnullチェックすればtry-finallyは1段階で済むけど、 出来れば変数は宣言と同時に初期化して、再代入したくない。 まぁデストラクタ使えばscope statementすら不要だけど。
389 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 13:48:05 ] あ、やべ。コードが全然違った……。 Database database = MySQLDatabase.connection(); try{ Query query = database.compileQuery("select * from books"); try{ Result result = query.execute(); try{ foreach(Row row; result){ ... } } finally { result.close(); } }finally{ query.close(); } }finally{ database.close(); }
390 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:28:56 ] >>386 このスレで張られるサンプルって、ほとんどが機能的なものではなく「言語仕様の検証」であって、 言語仕様からほとんど一意に決まるものだから検証サンプルそのものには創作性は認められないのではないかと。 何らかの機能性を有していれば3行のコードでも創作性が認められるとは思うけどね。
391 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:45:29 ] >>390 いずれにしても裁判所がそう認めない限りはわからないんだよね。 不確実なことを避ける考え方にも一理ある。 こういう話は嫌いじゃないけど、どうせ結論出せないんだし 気にする人だけ気にしてればいいんじゃね。
392 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:48:58 ] >>390 気にする人だけ気にすればいいというのは同意かな。 多少気になったので裁判例を調べてみた。 ア プログラムの著作物性 プログラムは,その性質上,表現する記号が制約され,言語体系が厳格 であるため,計算式をプログラム言語で記述したような場合にはプログラムにおけ る記述が相互に類似することがあり得る。仮に,簡単な内容とごく短い表記法によ って記述したプログラムをも,著作権法上の保護対象とすると,コンピュータの広 範な利用を妨げ,経済活動や研究活動に多大な支障を来すことになる。また,著作 権法は,プログラムの具体的表現を保護するものであって,機能やアイディア,あ るいは科学的な計算式やその採用を保護するものではない。当該プログラムがある 目的における公知の計算式の採用を保護対象とすることになると,結果的には計算 式そのものを独占させることとなるからである。 したがって,コンピュータに対する指令の組合せであるプログラムの具 体的表現がこのような記述からなる場合は,作成者の個性が発揮されていないもの として創作性が否定されるべきである。 www.courts.go.jp/hanrei/pdf/683C8598E4E61EC4492570DF001C9775.pdf 図表又は図表の使用例に示される思想ないし アイデアそのものは,著作権法によって保護されるものではない。また,このよう な図表又は図表の使用例は,次に述べるとおり,かかる思想ないしアイデアを表現 する際にその個性が表れず,定型的な一般的にありふれた表現としかならないよう な場合には,著作権法によって保護し得る表現上の創作性があるということはでき ない。 www.courts.go.jp/hanrei/pdf/A04C1CFADEB110E7492570BD001A9BE1.pdf
393 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:59:34 ] 392のアンカは391宛てで…… 上のほうの裁判例、被告の主張部分で判決部分ではありませんでした(ただし被告勝訴) しかし、控訴審で判断が一部ひっくり返ってた。 公知の式をプログラムにするだけなら創作性はないが、 それを含むシステム全体は創作性を有するとかなんとか ttp://www.courts.go.jp/hanrei/pdf/20070104101733.pdf 自分の間違いを訂正したところで、 スレチなのでこの辺で打ち止め。
394 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 18:10:52 ] >>389 のほうが>>371 みたいなのよりずっとマシだと思う。
395 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 18:12:01 ] コーディングスタイルやらインデントの話は不毛すぎる
396 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 18:31:05 ] >>371 だと、コードのどの部分でどんなハンドラが付いてるかが制御依存しちゃうんだよな。
397 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 19:01:36 ] そもそもデストラクタ使えよって話だ。
398 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 19:43:06 ] >>396 どういう意味なのか、アホな俺にもう少し噛み砕いて説明してくれまいか。 >>389 だと、openなどに対応するcloseがえらく離れちゃうし、 connection, compileQuery, executeという「本筋」の実行パスが分かりづらくて、 可読性の面で問題があるとおもうのだけど。 こう、gotoを忌避するあまり、関数呼び出しの度にif(!error){ ... が重なっていくCのコードみたいに。
399 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 20:20:32 ] >>396 そりゃあ、どんな処理をしたかによって後始末の処理を予約・保証したいんだから、 処理によって動的に定まるのが自然じゃね? switch(x){ case 1: f1(); scope(exit) _f1(); break; case 2: f2(); scope(exit) _f2(); break; default: f0(); scope(exit) _f0(); } とかtry-finallyだとどうなるんだろう。 結果的に静的に定まる場合なら、静的に定めるtry-finallyなコードに直訳できるけど、 こういう場合はよく分からん。フローの状態を記録する変数とか用意したりするのが セオリーなんだろうか。でもそれじゃ結局フロー依存だしなあ。
400 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 20:40:46 ] 単純なサンプルのつもりで書いたコードがボコボコにされててなんか辛いんだぜ
401 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 21:31:55 ] どんまい
402 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 21:44:24 ] 言語仕様に著作権が認められたらサンプルコード載っけるだけで著作権侵害になるのかな。
403 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 22:00:23 ] >>402 著作権は親告罪だから言語の作者がよほどの基地外じゃなかったら真っ白だよ でも今居るGPL厨みたいな人間がしつこく言ってきて結果的な被害は変わらないだろうけどw
404 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 22:22:52 ] >著作権法 >第十条 この法律にいう著作物を例示すると、おおむね次のとおりである。 >(中略) >九 プログラムの著作物 >3 第一項第九号に掲げる著作物に対するこの法律による保護は、その著作物を作成するために用いるプログラム言語、規約及び解法に及ばない。この場合において、これらの用語の意義は、次の各号に定めるところによる。 >一 プログラム言語 プログラムを表現する手段としての文字その他の記号及びその体系をいう。 >二 規約 特定のプログラムにおける前号のプログラム言語の用法についての特別の約束をいう。 >三 解法 プログラムにおける電子計算機に対する指令の組合せの方法をいう。 なので少なくとも現在の日本では著作権法の保護は言語仕様に及ばないはず。
405 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:34:56 ] じゃ実用新案辺りで手を打とうか
406 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:38:03 ] 言語仕様そのものには及ばないが、言語仕様を説明する文章は当然保護されるよな。 ニュースの内容と、ニュース本文のような感じで。
407 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 00:25:33 ] Rubyみたいにソースコードが仕様な場合はどうなんだろ。
408 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 00:58:46 ] tryの中でfinallyをscope(exit)と同じように機能させるとか try { starthoge(); finally endhoge(); }
409 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 01:10:57 ] { starthoge(); scope(exit) endhoge(); } これと等価?
410 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 02:54:59 ] catchがあるときに本領を発揮すると思う
411 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 12:52:51 ] DFL 0.9.7 is mostly bug fixes and core improvements: www.dprogramming.com/dfl.php Entice Designer 0.8.4.03 is a bug fix release: www.dprogramming.com/entice.php New Entice Designer and DFL Video Tutorials: www.dprogramming.com/dfl/videos.php
412 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 23:10:20 ] >>407 assert(0)
413 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 23:20:46 ] Entice は日本語が使えないのが惜しい……
414 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 23:31:15 ] static foreachはまだなのか
415 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 17:37:23 ] ftp://ftp.uploda.net/exe/test_window.zip 同じスタイルのウインドウを表示するだけのサンプルなんだけど、CとDではなぜか表示スタイルが違ってしまう。 たぶんCの方が正しいと思うのだけど、どこが悪いんだろう。 import std.stdio;を消すとエントリポイントが無いエラーが出るし。
416 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 18:11:42 ] >>415 Dの場合win.defをですね、 EXETYPE NT SUBSYSTEM WINDOWS,4.0 って書き換えてみましょう。
417 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 18:16:07 ] >>416 あっはっは。 前にそれどこかで見つけてそういう風にしていたのになぜか今見てみたら4.0が消えてたほうに変わってた。OTL どうもです。
418 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 00:36:53 ] DFLでウィンドウアプリを弄っています。 メインのFormをいわゆるSW_HIDE状態にしたいのですが・・・できませんorz visible=false; とか ShowWindow(cast(HWND)this.handle, SW_HIDE); とか試したがうまくいかないです。 やりかたご存知の方いらっしゃいませんか?
419 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 09:34:45 ] DFLってかなり.netに似てるから使いやすそうだと思ったけど、情報が少ないっていうのはかなり不利だよな。 >>418 で、.netに似てるなら.netを調べたらいいんじゃないだろうかと思って調べて来たら、.netでフォームを非表示にするには FormクラスのHide()を呼び出すみたいです。 DFLを見るとhide()があるので、これでいけるかも知れませんね。試してませんが。
420 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 09:51:59 ] >>416 のdefを適用してもコンソールウインドウを出しっぱなしにするにはどうしたら良いのでしょうか。
421 名前:418 mailto:sage [2008/02/29(金) 10:45:48 ] >>419 とりあえずhide()を呼び出して見ましたが変わりませんでした。 .netのHide()メソッドはvisibleをfalseにするのと同じとありました。 DFLにおいてvisibleプロパティについてはEnticeDesignerのメインformのvisibleプロパティのところに "whether or not this form is visible" と説明がでますのでどっちにしろ表示される・・・・( ;´Д`)ぇー!? て思ってたんですが、hide()もこれと同じ結果のようです。 なんか方法ないもんですかねぇ;
422 名前:419 mailto:sage [2008/02/29(金) 10:46:49 ] もう少し調べてみた。 MSDNによると、.netではvisible=falseとHide()は全く同じ動作らしい。DFLでも同じ可能性大。 それと、DFLで試してきたけど、 一つFormを作り、そこにボタンを置き、ボタンをクリックするとフォームのvisibleをfalseにする。って組んでみたら普通に非表示にされた。 だけど、フォームの生成(Application.run(form);)の前にform.visible=falseを設定しても非表示にはされなかった。 これは多分.netと同じ挙動。 natchan-develop.seesaa.net/article/18029500.html というわけで、>>418 がいつvisible=falseしてるのか知りたい。 とりあえず>>418 が生成前にvisible=falseしていると仮定して話を進めるが、 ↑のURLにあるとおりの回避法をDFLでしようとして、formの生成前に form.windowState=FormWindowState.MINIMIZED; form.showInTaskbar=false; としても上手くいかなかった。(showInTaskbarを指定し、MINIMIZEDにするとデスクトップの左下に小さくなったウィンドウが表示されてしまう。それぞれ単独では上手く動作する。) ので、Application.run(form)を使うなら、非表示のまま起動は出来ないと思う。 ただもちろんApplication.run()を使えばフォームを表示しないことは出来る。その場合フォームを表示したければform.show()を使えばOK。
423 名前:419 mailto:sage [2008/02/29(金) 10:54:09 ] つまり、hide()とかvisibleは生成前に設定しても意味無いけど、 生成後ならちゃんと機能するってことだと思う。
424 名前:418 mailto:sage [2008/02/29(金) 11:27:24 ] >>419 生成前に設定しているのが原因でした。 生成後に設定するにはどうしようかと考えていましたが、 わたしがやりたかったのはApplication.run()で実現できそうです。 使い方がよくわからなくてすみません。 ありがとうございました(・∀・) DFLに関して検索するとC#とかの情報が役に立つのでその辺を意識して作られてるのだと思いますが、 .NETとかC#とかやらずにC++あたりからDにきた者にはDflDocはひどいです><;
425 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 11:39:20 ] 俺も初心者の頃に訳も分からずC#のフォームデザイナ使っただけだから、ほとんど覚えてないな。 プログラムの流れやメッセージループも理解してないのにデザイナ使うと訳分からず混乱するw
426 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 14:45:33 ] >>420 EXETYPE NT SUBSYSTEM CONSOLE,4.0
427 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 18:35:42 ] あー。そーいえば俺もDFL使ってた時に同じようにはまったかも。 確認してないけど初期設定はonLoadとかloadとかでやったらどうだろう。
428 名前:419 mailto:sage [2008/02/29(金) 18:40:40 ] >>427 まあいいかと思って書かなかったけど、追記。 load内でvisible=false;をするとフォームが一瞬表示された後に消えます。
429 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 22:37:54 ] >>426 どうもです。出来ました。
430 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 23:15:02 ] D言語って日本語の変数名使えたのね。全く知らなかった。 使わないけど。
431 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 23:44:38 ] 明日はBOFか。 ここんとこ忙しくて予約とかさっぱり忘れてた でも行ってみる
432 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 01:20:24 ] 人数のカウントは、部屋の大きさの目安をとるためだけらすぃよ
433 名前:427 mailto:sage [2008/03/01(土) 02:09:54 ] >>428 あーそうだった。俺もそうなって、そこで妥協したんだった。 いい加減なこと言って申し訳ない。 しかしDFLのコード読んでみたら、初期化の最中にWinProcを介して あっちこっち飛んでは3種類くらいの可視フラグを立ててはチェックしてで頭が爆発した。
434 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 02:17:58 ] C++0xでこんなことできるらしいんだけど、Dではどう書けばいいのだろうか。 template<typename... T> class C: T... { C(const T&... t): T(t)... {} }
435 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 02:22:52 ] あ…インターフェイスにコンストラクタないから、これはかけないか。
436 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 02:32:38 ] template<class ... Args> void g(Args ... args) { f(const_cast<const Args*>(&args)...); } こういうのはちょっと羨ましいかも
437 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:09:46 ] BOFはじまるよ
438 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 11:13:51 ] BOFたのしそうだな
439 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 12:07:27 ] BOFおわったよ
440 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 12:07:57 ] BOFたのしかったな
441 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 12:38:41 ] www.ustream.tv/channel/dbof
442 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 12:44:11 ] 仕事早ぇー
443 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 15:26:05 ] BOF乙 ところで"Tuple"が複数のモジュールにあって それらが全然違うものだから混乱したぞ
444 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 15:36:31 ] あるある object.dみたいなところにひとつTupleが書いてあればいいのに
445 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 15:38:42 ] タプルリテラルを作れば解決するのになあ
446 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 16:42:23 ] >>441 もしかしてABAさんと、をるたんの謝辞だけ?
447 名前:Dubhead mailto:sage [2008/03/01(土) 17:14:32 ] BOFの簡単なリポートを書きました。 メモが追いつかなかった部分が多々あるけど許してね orz d.hatena.ne.jp/Dubhead/20080301
448 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 17:19:47 ] 気づいたら終わってた 誰か録画してないのー?