2012-01-25 37 views
2

8つのチェックボックス(CheckBox1、CheckBox2、...など)のユーザー選択グループを提供しようとしています。ここで、ユーザーは8つのチェックボックスから任意の組み合わせを選択できます。それぞれの選択については、例えば異なる符号化 があるでしょう複数選択

If CheckBox1.checked then 
Begin 
End 
Else 
If CheckBox1.checked and CheckBox2 .checked then 
Begin 

End 
Else 
If…. 

た場合を経由するよりも、他のそれを行う方法上の任意のアイデア教えてください - 非常に私の場合、ネストされているelse文を、私はそうなっています混乱し はあなたに

に感謝の更新

[OK]を、私はより多くを明確にしましょう。私は人事制度更新契約のプロセスに取り組んでいます。従業員の契約更新のみを選択したり、年次ボーナスを更新したり、更新して仕事のタイトルを変更したり、毎年のレイズ...それは論理であり、私はそれを実装する最良の方法が何もわからない。

+0

よろしくお願いします。 私は人事制度更新契約のプロセスに取り組んでいます。ユーザーは、従業員の契約の更新のみを選択したり、年次ボーナスを更新したり、更新して仕事のタイトルを変更することができます。年間ボーナスraise ...それはロジックなので、それを実装する最良の方法は何もわかりません – Amanda

答えて

0

私はロジックを複数のグループに分けます。プライマリGroupBox上では、CheckBox自体を更新するだけです(必要な他の更新オプションはありません)。それから、年次ボーナスを与える、役職を変更する、そして賞金をつけて余分ボーナスを与えるというオプションを持つ2番目のGroupBoxを持ってください。 Renew CheckBoxがチェックされたら、2番目のGroupBoxを表示します。チェックボックスの更新をオフにすると、2番目のGroupBoxが非表示になります。これにより、ユーザーには選択肢が少なくなり、ユーザーは要件に合った組み合わせのみを選択できるようになります。

+0

ただ1つのチェックボックスを持つグループボックスはむしろ無意味です。グループボックスには更新/更新しないチェックボックスを含めない方が自然です。グループボックスで更新されたときに利用できる追加のオプションは良好です。そのグループボックスは、更新されていない場合は非表示になっているか、表示されていますが、すべてのオプションがオフの場合は無効になっています。私は個人的に後者を好むが、議論は両方の方法で行うことができる。 –

+0

@Amamdaここのレミーは、私の一般的なアドバイスをあなたの特定のケースに特化しています。相互に排他的なオプションが2つしかない場合は、1つのチェックボックスまたは2つのラジオボタンとして表示できます。より良い選択肢はありません。 2つのラジオボタンを使用すると、ユーザーにネガを扱わせる必要はありません。あなたは彼らに以下の選択肢を提供することができます: - 更新 - 更新しないでください。より適切な方法を選択する必要があります。もちろん、相互に排他的な3つの選択肢がある場合、Transferと言うと、ラジオボタンの使用を強要されます。 –

1

通常、オプションが互いに独立している場合、チェックボックスのグループが使用されます。つまり、あなたのロジックは一般にネストされていません。これは次のようになります。

if checkbox1.Checked then 
    .... 
else 
    ....; 

if checkbox2.Checked then 
    .... 
else 
    ....; 

などとなります。

チェックボックスの意味が強い場合は、問題が複雑になります。あなたの特定の問題の詳細が分からなければ、あなたにアドバイスするのはむしろ難しいことです。しかし、このような問題を解決するには、コード内の依存関係を取り除き、上記のように独立したロジックを使用できるようにする方法が必要です。


更新された質問で詳細情報が表示されます。あなたは言う:

ユーザーが唯一の従業員の契約を更新することを選択することができ、またはそれを更新し、年間ボーナスを与える、または更新でジョブタイトルを変更し、または年間昇給

で余分なボーナスを与えること

これは、相互排他的なオプションのリストのように聞こえます。この場合、チェックボックスのグループは間違ったUI要素です。ラジオグループTRadioGroupを使用する必要があります。これはのラジオボタンのグループで、の1つだけを選択できます。これは、例えば、列挙型にマッピングすることができ、あなたのロジックは単純なケースステートメントになることができます。

このUIをチェックボックスを使用して実装すると、ユーザーは不可能なオプションの組み合わせを選択できます。たとえば、従業員に昇給させるオプションを選択することができますが、契約を更新するオプションを確認することはできません。

もちろん、あなたのオプションのいくつかは相互に排他的であり、いくつかは互いに独立しているかもしれません。その場合は、ラジオグループといくつかのチェックボックスの組み合わせを使用する必要があります。

+1

ラジオボタンは、相互に排他的なオプションの選択肢の1つです。依存関係の有無にかかわらず、すべてのオプションが可能な場合、チェックボックスは有効です。 –

+0

@David。私が言及したものより多くのオプションがありますが(例を挙げました)、私はRadioGroupを使うためにロジックを変更しようとします。私は何が起こるか知っています。助けてくれてありがとう – Amanda

+1

ラジオボタンやチェックボックス、またはいくつかの組み合わせが答えであるかどうかは確かではありませんが、正しい判断を下す要因を概説しようとしました。 –