掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
同じ処理を関数にまとめるには? (ID:6470)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Halbow です。 追伸です。 Pi がゼロの場合も考慮して > if Pi > 26 then exit; じゃなくて if (Pi > 26) or (Pi<0) then exit; のほうがいいかもしれません。 一般論ですが、RC と CC はどのように算出しているか分かりませんが case をたくさん書く必要が出てきたときは論理の整理が出来る可能性が ある場合があります。上のコードの場合、ひらがな全部を case 文で 判別するのはいかにも効率よくありません。RC = 9 で CC が 0 のときは Panels[1] を黄色にし、Edit を 'a' と 'A' にする CC が 1 のときは Panels[2] を黄色にし、Edit を 'i' と 'I' にする .......... という論理は CC から関連づけた配列にしておくと、論理の整理ができます。 例えば type TRC9 = record PanelNo:integer; komoji:Char; oomoji:Char; end; const RC9:array[0..4] of TRC9 = ((PanelNo: 1; komoji: 'a'; oomoji: 'A'), (PanelNo: 2; komoji: 'i'; oomoji: 'I'), (PanelNo: 3; komoji: 'u'; oomoji: 'U'), (PanelNo: 4; komoji: 'e'; oomoji: 'E'), (PanelNo: 5; komoji: 'o'; oomoji: 'O')); としておくと 0..4: begin IroHenko1(RC9[CC].PanelNo) Edit2.Text := RC9[CC].komoji; Edit3.Text := RC9[CC].oomoji; end; というふうに一つの Case 文にまとめることが出来ます。 それから OnMouseMove イベントはものすごく頻繁に起こります。 ですから前回の RC と CC をグローバル変数などで記憶しておき 変更があったときだけ処理を実行するようにするとよいです。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.