Unit1.pasに全部書いちゃいました。【現在1万行】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGもうわけらからん!
0002デフォルトの名無しさん
NGNG>>1号車 1番2番スタイルでチェッカー(・∀・)ギャオ
>>2号車 ここは(・∀・)ギャオ(・∀・)ギャオ
>>3号車 ギョウじゃないよ(・∀・)ギャオだよ
>>4号車 前を行く各々方道を開けられーい 常勝(・∀・)ギャオがまかり通ーる
>>5号車 涙チョチョぎれる高配当(・∀・)ギャオ
>>6号車 本命党の皆様おめでとうございまーす(・∀・)ギャオ
>>7号車 針、3秒前、2秒前、1秒前、各車一斉にスタート(・∀・)ギャオ
>>8号車 →北
━―━―━―━―━―━―━―━―━[JR浦田駅(・∀・)ギャオ]━―━―━―━―━―━―━―━―━―
(・∀・)ギャオの出没地
0003デフォルトの名無しさん
NGNGコツ教えれ。
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNGおまえよか格上だと思うぞ。
0006デフォルトの名無しさん
NGNG長々話す暇があったらプログラムする実行派なんだよね。
ゴミソフトしか作らないでぐちゃぐちゃ偉そうに言ってるの馬鹿みたいじゃん。
でも、少しやばくなってきたぜ。
0007デフォルトの名無しさん
NGNG分割する単位は、
関数・手続
クラス
ユニット
アプリケーション
まず、関数・手続きに分割していますか? 出来るだけ小さくするといいでしょう。
関数、手続きは関数内関数にしてゆくとよいでしょう。関数内関数は簡単にクラスに分割出来ます。
0008デフォルトの名無しさん
NGNG,/' ..::::\.,__,,,.....,,,__
,i' ...::::::::""" `''・-、.,_ _,,......,,,_
i' ...::::" ":::`・'"~ :|
/" " :::: ...::,l
./' "::::::/
.i' ::"i,
i' ● .::::::|
.i' .:::::::|
i; i、., ,. ●...::::::::|
'、 | `"~'/ ::::::::ノ
\ l, / .:::::::/ おかねちょうだい!!
`/( i.,_,/ ...:::::ノ'
,.-'"~ ~"ー-.,,__ .....:::::::ノ').,
./=ー'"~"`ー-.,_~"\-.,_ ,...,_ "";.-、::/ノ::: 'i,
/ ̄ :::::〜`i.():::\`""| `(^);;;;;|;;/;:::::::: 'i,
. / ::::::`i |:::::):;;;;;i、,/人_ノ;;;;'i,::::::::::: i
| .:::::::|/::::└ー-,;;;\;i;;;;|/;:::::::::::: i
i.,_,.人 ..::::::/ :::::::::::::/;;;;;;;'i,'i;;;;|\;:::::::::::: i
`; .::...:::::/ :::::::::::`- .,_;;;;i,ノ;|;;;/;:::::::::::: /
`、.,..:::::::::::::::::/ :::::::::::::::;;;;;;\,i ,/;;;;;:::::::::::|/
`i"`-.,_,.ノ ::::::::::::::::;;;;;;;;;;;\|;;;;::::::::::::|
| :::::::::::::::::::;;;;;;;();;||;;;::::::::: .ノ
0009デフォルトの名無しさん
NGNGみんなで分析/分割してやるから。
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG一個のファイルCで、8000行行った。
ファイル総数は500ぐらいあるかな
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNG※しかし本人はエリート意識が強い。
0016デフォルトの名無しさん
NGNGあのエディタ
0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNGおかげで分割しまくったファイルが散乱してるが
0019デフォルトの名無しさん
NGNGそれも非効率だな。
ファイルが多すぎると訳分からなくなる。
一つのファイルにある程度多めに書いて、
見出しつけておくほうが管理しやすい
0020デフォルトの名無しさん
NGNG1、最初は、MyLib.pas に利用可能なのは全部入れておく
2、関数の数が100くらいになったら、一度整理して機能別に分けてユニットを分割する
って感じでやればいいと思う
0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNGObject Pascalもパッケージの概念くらい使えればねぇ
0024デフォルトの名無しさん
NGNG一緒だよ。あるていど計画性がないと。
0025デフォルトの名無しさん
NGNGパッケージの概念はあると思うが?
0026デフォルトの名無しさん
NGNGむかしこの疑問に「フレーム使え」とかいう意見があったんだけど、実はいまだに意味がわからないんだ。
もちろんフレームの使い方はわかってるつもりなんだけど、ソース分けられないよねぇ?
0027頭悪い ◆gGTEz68pSM
NGNG2: Delphiばかリやってると馬鹿になる (874) (587)
ワロタ
0028デフォルトの名無しさん
NGNGイベントは別のユニットに書けるよ。
でも、イベントを別ユニットに書かない方がいい。
効率悪いように見えても、
一旦そのフォームのあるユニット中に、呼び出しコードを書くようにすべき。
そうじゃないと、その分割意味あるのかい? て状況になるし、
0029デフォルトの名無しさん
NGNGスマートに書くなら、TAction を継承して作っておくといいよ。
次に使う時はそれを RegisterActions でIDEに登録しておけば楽チン
003026
NGNGえっできるの?
イベントをデータモジュールに書いておけばオブジェクトインスペクタに出てくるけど、わざわざデータモジュール作るのも何だかなって感じで
あとは設計時にOnXXX := なんて方法しか思いつかないっす
できれば教えてください
イベントのコードだけで1万行届くんで・・・分割に意味があると思う
次はエディタで折り畳めるようになったらいいなぁ
0031デフォルトの名無しさん
NGNG出来るというのは
>イベントをデータモジュールに書いておけば
>設計時にOnXXX := なんて方法
の事だよ。
TFormだったかの継承じゃないと、オブジェクトインスペクタに出せないからさ。
でも、
>イベントのコードだけで1万行届
ってのはマズイよ。 イベントには 3行くらいまでとか自分ルール決めて、
それ以上はデータクラスみたいなのを自分で作って、そのクラスのメンバーを呼び出すような格好にしないとね。
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG> Javaのコードは1ファイル1クラスであることが基本のようです.
> よって,1つのクラス内のデータ(メンバ)をアクセスするための関数(メソッド)群は
> 1つのファイルに書くことになります.
> そして,筆者のもらったJavaのコードはなぜか1つだったのです.
> 筆者は一瞬,ファイルを開こうとする手を制止する「見えない力」を感じました.
> しかし,筆者はその見えない力を断ち切り,そのファイルを開いたのです.
> そ,そこに現れたのは,な,なんと,1ファイル14万行のソースコードだったのです.
> 筆者は自分の目を疑いました.
> 「まさか,1クラスではないよな」と調べてみるのですが,
> どうやら1クラスで14万行….その中に複数のメンバ関数があり
> ,1つ1つのメンバ関数もかなり大きい.
> クラスのメンバ変数はグローバル変数のように扱われていました.
0034デフォルトの名無しさん
NGNGビットマップの各種エフェクトつきコピー(複数色フォーマット対応)メソッドをご丁寧に全部自前でインラインに書いたソースを見たことがあるが、それでも9000行だったぞ。
0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNG満タンです。
0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNGどうなんだろ…。最初は自分のコードにバグがあるからと思ったんだけど、適当に
ソースを別々のユニットに分割したら直ったのでそうなのかも。大抵の場合困る事は無い
けど、相互参照を用いたコードは一つのユニットに記述しなきゃならんので問題かもね。
0042デフォルトの名無しさん
NGNGデバッグ情報をつけた .exe の大きさって、どれくらいでした?
0043デフォルトの名無しさん
NGNG15Mbくらい。かなり大きいのでdllでプログラムを分割とかすべきかも。
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNG・interface だけまとめて定義するユニットをつくり、
実装は個々のユニットで行う
・抽象クラスだけまとめて定義するユニットをつくり、
継承は個々のユニットで行う
なんてやり方はありですか?
0047デフォルトの名無しさん
NGNGprivate をどう処理するつもりなの?
0048デフォルトの名無しさん
NGNGinner classを保持してるclassがinner classを参照する場合、interface節で
inner classのunitをuses、参照する。inner classからinner classを保持して
るclassへの参照は、とりあえずTObject型にinner classを保持してるclassへの
参照を代入。implementation節でinner classのunitをusesし、as演算子で
down castを行い参照というのはどうよ?
>>47
interface or 抽象classをまとめて定義するだけだからprivateなmemberは無い
んでない?確か仕様上、同一unit間ではprivateなmemberにも参照可能だったっ
け。それをどう表現するかって事?
0049デフォルトの名無しさん
NGNGええと、相互に参照しあうクラスを宣言しつつ、かつ実装は
別ユニットにわけたいわけです。private は実装・継承時に
考えればいいんじゃないかなーとおもいます。
>>48
やっぱりそうなりますかね。。。as の嵐になってしまう。
それにしてもなんで同一ユニット内のクラスって private メンバまで
丸見えなんでしょうね。C++ の friend に対する回答?
0050デフォルトの名無しさん
NGNG>C++ の friend に対する回答?
そんなとこじゃないですか。関数ローカルなstatic変数を実現できるよう、型付
定数に代入可能だったりしますしね。
0051デフォルトの名無しさん
NGNG俺の組み込み機器用アセンブラソース(68K)は14,000行&400KByteぐらいだ。
もう手がつけられん。
■ このスレッドは過去ログ倉庫に格納されています