# CHECK Controls & STATE3

**URL:** <https://clarionhub.com/t/check-controls-state3/7931>\
**Category:** uncategorized\
**Created:** [February 19, 2025, 8:19pm UTC](https://clarionhub.com/t/check-controls-state3/7931 "2025-02-19T20:19:29Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![totalhip](https://clarionhub.com/user_avatar/clarionhub.com/totalhip/32/1477_2.png) [@totalhip](https://clarionhub.com/u/totalhip)\
**Post date:** [February 19, 2025, 8:19pm UTC](https://clarionhub.com/t/check-controls-state3/7931/1 "2025-02-19T20:19:29Z")

</div>

From a 2020 discussion…

> [@How to represent NULL in a checkbox - Clarion 10](https://clarionhub.com/t/how-to-represent-null-in-a-checkbox-clarion-10/3711/8):
>
> State 3 works for me in the C10.12799 IDE Properties by checking “Enabled” in “Value 3rd State” then you must enter a State 3 Value

MUST probably should have emphasized.

Taking it a bit further, I tried setting PROP:State3Value in code. However, this was ONLY applied to the control when STATE3(Value) had been included for the check control on the window. There does not appear to be PROP:State3 itself that presumably might be required prior to using PROP:State3Value.

Am I missing something here or has SV simply not fully implemented the feature?

---

<div class="post-metadata">

**Author:** ![jslarve](https://clarionhub.com/letter_avatar_proxy/v4/letter/j/e480ec/32.png) [@jslarve](https://clarionhub.com/u/jslarve)\
**Post date:** [February 19, 2025, 9:03pm UTC](https://clarionhub.com/t/check-controls-state3/7931/2 "2025-02-19T21:03:25Z")

</div>

You can create a state3 check by using CREATE:State3. Then your PROP:State3Value will work as expected.

---

<div class="post-metadata">

**Author:** ![jslarve](https://clarionhub.com/letter_avatar_proxy/v4/letter/j/e480ec/32.png) [@jslarve](https://clarionhub.com/u/jslarve)\
**Post date:** [February 19, 2025, 9:11pm UTC](https://clarionhub.com/t/check-controls-state3/7931/3 "2025-02-19T21:11:38Z")

</div>

```clarion
  PROGRAM

  MAP
  END

FEQ LONG
CheckUse BYTE

Window WINDOW('State3'),AT(,,100,100),GRAY,FONT('Segoe UI',9)
              END

  CODE
  
  OPEN(Window)
  FEQ = CREATE(0,CREATE:state3)
  FEQ{PROP:Text} = 'Click Me'
  SETPOSITION(FEQ,2, 2)
  UNHIDE(FEQ)
  DO DisplaySettings
  FEQ{PROP:Use} = CheckUse
  FEQ{PROP:State3Value} = 2
  ACCEPT
    CASE EVENT()
    OF EVENT:Accepted
      DO DisplaySettings
    END    
  END
  
DisplaySettings ROUTINE
  
  0{PROP:Text} = 'Check Value: ' & CheckUse

```

---

<div class="post-metadata">

**Author:** ![totalhip](https://clarionhub.com/user_avatar/clarionhub.com/totalhip/32/1477_2.png) [@totalhip](https://clarionhub.com/u/totalhip)\
**Post date:** [February 19, 2025, 9:32pm UTC](https://clarionhub.com/t/check-controls-state3/7931/4 "2025-02-19T21:32:42Z")

</div>

So a different control than CREATE:Check. Never would have expected that.  
Unfortunately, being able to turn STATE3 on/off based on another control as I had hoped, becomes a bit more problematic.

---

<div class="post-metadata">

**Author:** ![jslarve](https://clarionhub.com/letter_avatar_proxy/v4/letter/j/e480ec/32.png) [@jslarve](https://clarionhub.com/u/jslarve)\
**Post date:** [February 20, 2025, 12:12am UTC](https://clarionhub.com/t/check-controls-state3/7931/5 "2025-02-20T00:12:56Z")

</div>

It is doable, though.

---

<div class="post-metadata">

**Author:** ![totalhip](https://clarionhub.com/user_avatar/clarionhub.com/totalhip/32/1477_2.png) [@totalhip](https://clarionhub.com/u/totalhip)\
**Post date:** [February 20, 2025, 12:40am UTC](https://clarionhub.com/t/check-controls-state3/7931/6 "2025-02-20T00:40:13Z")

</div>

Faking it might be better if one ever needs to revisit the code.

---

<div class="post-metadata">

**Author:** ![jslarve](https://clarionhub.com/letter_avatar_proxy/v4/letter/j/e480ec/32.png) [@jslarve](https://clarionhub.com/u/jslarve)\
**Post date:** [February 20, 2025, 2:29am UTC](https://clarionhub.com/t/check-controls-state3/7931/7 "2025-02-20T02:29:14Z")

</div>

I don’t know, man. Seems pretty simple to write a class that does the thing. In the Init(), pass the original checkFEQ. Create a hidden state3 checkbox. Mimic a few properties. Write a method called setCheckType. Unhide the one you want. Hide the one you don’t.

---

<div class="post-metadata">

**Author:** ![totalhip](https://clarionhub.com/user_avatar/clarionhub.com/totalhip/32/1477_2.png) [@totalhip](https://clarionhub.com/u/totalhip)\
**Post date:** [February 20, 2025, 12:54pm UTC](https://clarionhub.com/t/check-controls-state3/7931/8 "2025-02-20T12:54:38Z")

</div>

Agree in principle, especially now that your reply prompted a reminder of the parent parameter in CREATE. However, using hide/unhide on string(s) included on the window MIGHT be made to convey the same information (or actually more) for the users.
