확인란 만들기


51

사람들이 마우스를 사용하여 상호 작용할 수 있는 2 상태 확인란 을 만드는 프로그램을 작성하십시오 .

특히, 프로그램은 다음을 모두 달성해야합니다.

  1. 확인란의 클릭 가능한 영역 인 화면의 8 × 8 픽셀 (또는 원하는 경우 더 큰) 영역이 있어야합니다. 따라서이 영역을 단순히 확인란이라고합니다.

  2. 마우스 커서가 확인란 내에서 이동하고 기본 * 마우스 버튼을 누르면 확인란이 상태를 전환해야합니다.
    Checked가 선택 해제됩니다. 미확인이 확인됩니다.

  3. 확인란이 전환되어 있으면 움직이지 않아야합니다.

  4. 확인 된 상태에서 확인란은 모든 색상이 될 수 있습니다.

  5. 체크되지 않은 상태에서, 체크 박스는 적어도 16 개의 픽셀이 체크 된 상태와 시각적으로 구별되는 한 임의의 색상 일 수있다 .

  6. 단일 프로그램 인스턴스에서 모든 점검 된 상태는 서로 시각적으로 동일해야하고 모든 점검되지 않은 상태는 서로 시각적으로 동일해야합니다.

  7. 프로그램이 명시 적으로 종료 될 때까지 종료하지 마십시오 (예 : 종료 버튼 또는 Alt + F4 사용). 사용자는 원하는만큼 확인란을 클릭 할 수 있습니다.

* 기본 마우스 버튼이 항상 왼쪽 클릭이라고 가정 할 수도 있지만 마우스 소프트웨어 나 OS에서 정의한 기본값을 사용하는 것이 좋습니다. 사용자에 따라 실제로 왼쪽 클릭이 아닐 수도 있습니다.

노트

  • 확인란 영역 외부에있는 것은 중요하지 않습니다. 데스크톱 일 수도 있습니다. 모든 토글에서 변경되는 콘솔의 일부일 수 있습니다.

  • 확인란의 상태는 중요하지 않습니다.

  • 체크 박스 영역은 8 × 8 픽셀 이상의 치수를 가질 수있다. 정사각형 일 필요는 없습니다.

  • 콘솔 글꼴 크기, 브라우저 확대 / 축소, 모니터 해상도 등과 같이 제어 할 수없는 설정은 약간만 허용 할 수 있습니다. 프로그램이 적절한 테스트 설정에서 작동하는 동안에는 유효해야합니다.

  • 프로그램이 창을 열면 필요에 따라 화면의 적절한 위치로 드래그되었다고 가정 할 수 있습니다 (예 : 왼쪽 상단).

  • HTML 또는 일반적으로 본격적인 프로그래밍 언어로 간주하지 않는 다른 언어와 같은 마크 업 언어를 사용할 수 있습니다 .

  • 기본 마우스 버튼을 사용하여 확인란 을 전환 할 수 있어야 합니다. 마우스 모션을 제외하고 다른 형식의 입력 (예 : 마우스 오른쪽 버튼)으로 전환해도 괜찮습니다 . 즉, 마우스가 단지 확인란 내에서 움직 인 경우 상태가 바뀌지 않아야합니다.

  • 실제 사용중인 체크 박스의 스크린 샷을 적극 권장합니다!

채점

바이트 단위의 가장 짧은 코드가 이깁니다.

23 바이트의 표준 HTML 예제

<input type="checkbox">

Chrome의 경우 12x12 픽셀 확인란과 약 30 픽셀이 선택 상태와 선택되지 않은 상태 사이에서 명확하게 변경됩니다.

브라우저 확대 / 축소가 100 %임을 허용합니다.


2
확인란이 전체 화면을 덮을 수 있습니까?
Kritixi Lithos

@KritixiLithos 예, 유효합니다. 원하는 경우 더 큰 지역이 작동하더라도 특정 8x8 지역을 공식 확인란으로 계산할 수 있습니다.
Calvin 's Hobbies

@ Helka Homba-앱이 확인란 자체를 제외하고 다른 컨트롤을 표시 할 수 있습니까?
zeppelin

확인란이 다른 종류의 입력을 전환해도 괜찮습니까? (예를 들어, 체크 박스가 마우스 클릭, 마우스 움직임 또는 키 누르기와 상관없이 모든 종류의 사용자 입력에서 토글되는 경우 솔루션이 올바른가요? 마우스 클릭에서 토글되지만 토글됩니다. 다른 자극도.)

1
@zeppelin "체크 박스 영역 외부에있는 것은 중요하지 않습니다. 데스크탑 일 수 있습니다. 모든 토글에서 변경되는 콘솔의 일부일 수 있습니다." 따라서 확인란이있는 한 다른 것이 중요하지 않습니다.
Calvin 's Hobbies

답변:



31

HTML, 20 바이트

이것이 대답으로 얼마나 유효한지 모릅니다. HTML은 법적으로 유효성을 검사하기 위해 태그를 닫아야하지만 최신 브라우저는 자동으로 닫아서 실행 가능합니다.

<input type=checkbox


3
나는 이것을 따옴표없이 옵션으로보고 있었지만 닫는 것을 완전히 놓쳤다 >. +1 및 유효한 IMHO.
ElPedro

1
이 사이트에서 언어는 구현에 의해 정의되므로 나에게 괜찮습니다.
John Gowers

1
@JohnGowers에게 감사의 말을 전합니다. 나는 얼마나 많은 학대가 수용 가능한지에 대한 정의가 궁금했습니다.
Jan

27

배쉬 , 67 55 50 35 32 31 바이트

:()(read -p$[i^=1]
›?9h -sn6
:)

이 코드에는 CR 바이트 (첫 번째 줄 바꿈)와 CSI 바이트 (Windows-1252 인코딩의 작은 직각 괄호)가 포함됩니다. xterm (또는 동등한) 및 ISO-8859-1 인코딩 (또는 이와 유사한)이 필요합니다.

이 코드는이라는 함수를 정의합니다.이 함수 는 검은 색 사각형에 :흰색 1 또는 0 을 번갈아 표시합니다 . xterm의 기본 설정에는 정확히 24 개의 다른 픽셀이 있습니다. ( 증거 )

전체 터미널의 색상을 전환하는 이전 버전 의 경우이 답변의 개정 10 을 확인하십시오 .

4 바이트를 절약하는 xterm 을 제안 해 주신 @ ais523에게 감사드립니다 !

작동 원리

:(...):를 실행 하는 함수를 작성합니다 ....

읽기 명령은 실제 마법을 수행합니다.

  • -p STDOUT에 인쇄되는 입력 프롬프트를 지정합니다.

    • $[i^=1]는 변수 i1 을 XOR하는 산술 확장입니다 . 초기 해제 할 수있다; 이것이 발생하면 0 으로 취급됩니다 .

    • 캐리지 리턴은 커서를 줄의 시작 부분에 다시 놓습니다.

    • ›?9h지원되는 터미널에서 마우스를 캡처합니다. 클릭 할 때마다 6 개의 문자가 터미널에 전송됩니다. 즉 ←[Mbxy, ESC 바이트 ( 0x1b )를 나타냅니다 . ←[이스케이프 시퀀스를 나타내는 M마우스, b버튼 ( 0x20에 , + 버튼 번호) X (클릭 좌표 가 0x20 좌표 +) 및 y는 좌표.xy

    • -sn6하게 읽어 침묵 (마우스 입력이 STDERR에 반향되지 않습니다) 정확하게 6 바이트를 읽은 후 중지합니다. 입력을 REPLY 변수 에 저장 하지만 생성되는 출력에는 관심이 없습니다.

마지막으로 한 번의 마우스 클릭 후 읽기 가 완료되면 :재귀 적으로 호출되어 무한 루프에 들어갑니다.

창조와 호출

$ echo $':()(read -p$[i^=1]\r\x9b?9h -sn6\n:);:' > checkbox.sh
$ xxd -c 17 -g 1 checkbox.sh
0000000: 3a 28 29 28 72 65 61 64 20 2d 70 24 5b 69 5e 3d 31  :()(read -p$[i^=1
0000011: 5d 0d 9b 3f 39 68 20 2d 73 6e 36 0a 3a 29 3b 3a 0a  ]..?9h -sn6.:);:.
$ LANG=en_US xterm -e bash checkbox.sh

산출

스크린 캐스트


나는 이것과 비슷한 해결책을 연구하고 있었다 (다른 언어로도 줄 바꿈없이 입력을받을 수 없기 때문에 포기하도록 강요했다). 가능한 개선 :로 변경 1000h하십시오 9h(차이는 1000h마우스 누름과 해제를 모두 9h처리하고 마우스 릴리스 만 처리 한다는 것입니다 ). 코드의 다른 곳에서 변경이 필요할 수도 있고 필요하지 않을 수도 있습니다.

@ ais523 나는 그것을 시도했지만 적어도 내 터미널 에뮬레이터 (Konsole)는 그것을 지원하지 않는 것 같습니다. 당신은 하나를 알고 있습니까?
Dennis

gnome-terminal작동하는 것 같습니다. 그것이 테스트에 사용했던 것입니다 (편집 : 1 바이트 CSI를 지원한다고 생각하지 않습니다). xtermKDE 시스템이있는 경우에도 작동하며 설치가 더 쉬울 수 있습니다. (방금 직접 테스트했습니다. 어떤 이유로 든 작동 \x1b[하지는 않지만 \x9b터미널 자체가 아닌 stty 설정과 관련이있을 수 있습니다.)

@ ais523 xterm이 있습니다. PC로 돌아 왔을 때 확인하겠습니다.
Dennis

8
나는 그것이 될 방법 사랑 :)에서 :(
안드라스 디크에게

22

처리 중, 78 66 65 63 61 바이트

@TuukkaX 덕분에 -a%2대신에 2 바이트를 절약했습니다.a%2*-1

@TuukkaX 덕분에 2 바이트가 절약되었습니다. a=-a

int a=1;void draw(){background(a);}void mousePressed(){a=-a;}

확인란은 흑백으로 번갈아 나타납니다.

설명

int a=1;                   //the variable that contains the state of the checkbox
void mousePressed(){a=-a;} //if the mouse is pressed, change the sign of a

이제 if-statement를 사용하여 처리하는 것과 같은 다른 많은 대안이 있지만 마우스를 누르고있는 동안 이상하게 보이고 배경을 끊임없이 변경합니다. 나는 먼저 시도 mouseButton했지만 더 많은 조건과 더 많은 코드가 필요할 것입니다.

이제 mousePressed()영원히 호출되기 위해서는 (그렇지 않으면 프로그램이 시작된 후에 중지 될 것입니다), draw()함수 가 필요 합니다.

void draw(){               //loop infinitely
  background(a);           //set the sketch's background to -a%2
  //if a ==  1, the background colour is set to almost black
  //if a == -1, the background colour is set to white
}

여기에 이미지 설명을 입력하십시오


더 작은 확인란은 90 바이트입니다 (확인란은 왼쪽 상단에 있으므로 일부 마우스 조건을 제거 할 수 있습니다).

int a=1;void draw(){fill(a);rect(0,0,8,8);}void mousePressed(){if(mouseX<9&mouseY<9)a=-1;}

2
프로세싱이 단일 정수를 그레이 스케일 컬러로 받아들이는 방법을 영리하게 사용합니다!
FlipTack

@FlipTack 흰색은 다음과 같이 표현 될 수 있습니다.fill(-1)
Kritixi Lithos

1
나는 아이디어가. 초기화 a1 대신 0으로의 변경에 a++a=-a있습니다, -a%2단지 a. a1과 -1 사이 를 전환 합니다. 색상 1이 무엇을 생산하는지 모르겠습니다.
Yytsi

@ TuukkaX 예 작동합니다. color(1)생산 #010101검은 색에 가까운 인
Kritixi LITHOS

22

HTML + 자바 스크립트, 32 30 25 자

<p onclick=innerHTML^=1>0


3
this암시 적이며 제거 할 수 있습니다. 또한 innerHTML짧습니다.
Dennis

@ 데니스, 이상해 ... 고마워.
Qwertiy

<input>요소를 사용하지 않는 경우 +1
RedClover

20

유닉스 쉘 (+ x11-apps), 3 바이트

기권

아래의 답변은 지루하고 경계선이며 "속임수"(적어도 나에게는)입니다.

그러나 "작성된대로"또는 "기본 허점"과 같은 챌린지 규칙을 위반하는 것으로 보이지 않으므로 게시하고 있습니다.

(특별한 규칙을 어길 수 있다면 댓글을 달아주세요!)

골프

xgc

xgc 프로그램은 X 그래픽 프리미티브의 다양한 기능을 보여줍니다.

XGC의 화면이 실제로 다양한 체크 박스로 가득 :

여기에 이미지 설명을 입력하십시오

및 "스티커 버튼"(이 챌린지 규칙에서 확인란으로 표시됨) :

여기에 이미지 설명을 입력하십시오


20

GitHub Flavored Markdown-6 바이트

- [ ] 

(후행 공간이 있습니다)

요지에서 : 확인 / 확인


물론 이것은, "두 상태의 체크 박스를 생성하는 프로그램 쓰기 1 문장의 하반기 일치하는 사람들이 마우스를 사용하여 상호 작용할 수 있음을 ."?
manatwork

1
예, 요점에 붙여넣고 요점 ( "컴파일")을 만들면 해당 내용과 상호 작용할 수 있습니다.
Axel

흥미 롭군 @ Ax31 감사합니다. 나는 요점을 사용하지 않았다.
manatwork

1
"Github Flavored Markdown"을 기대하지 않았을 것입니다.
Jonas Schäfer



14

파이썬 REPL, 45 바이트

from tkinter import*
Checkbutton(Tk()).pack()

저는 CG에 참여하지 않으며이 게시물을 자주 읽지 않습니다. 그러나 외부 모듈을 사용할 수 있다는 것이 정말 놀랍습니다. 그게 속이지 않습니까? Tk 소스 코드의 바이트 수를 모르지만 이러한 바이트를 바이트 수에 추가해서는 안됩니까?
FMaz

1
@Krazor tkinter는 Python의 표준 라이브러리입니다 (그러나 그렇지 않은 경우에도 Python REPL + tkinter 만 선언하면됩니다). 즉, 가져 오기만하면 해당 기능을 사용할 수 있습니다. 제안한 페널티는 사용자가 작성중인 언어의 소스에있는 바이트 수를 바이트 수에 포함 시키도록 요청하는 것과 유사합니다. 도전이 게시되었습니다.
Blue

알겠습니다. 설명해 주셔서 감사합니다.
FMaz

14

지오 지브라 , 10 바이트

Checkbox[]

입력 창에 입력했습니다.

실행의 gif는 다음과 같습니다.

프로그램 실행


7
우와, 지오 지브라. 기억 나 오랜만이야.
Nic Hartley

나는 이것이 주제가 아닌 것을 알고 있지만 Waterloo Collegiate Institute에 가십니까? 당신의 이름에 따라 호기심이 생깁니다. 난 스토커가 아니에요 걱정하지 마십시오 :)
HyperNeutrino


11

자바 스크립트 HTML - 136 124 120 115 113 111 109 79 바이트

<p style=height:20;border:solid onClick=t=this;t.innerHTML=(t.e=!t.e)?'x':''>

@KritixiLithos 덕분에 -2

@Jan에서 환상적인 골프 후 79로 줄었습니다. 새 버전은 요구 사항에 맞지만 전문적인 자부심 때문에 이전 버전을 유지했습니다.

내장 기능을 사용하는 것이 완벽하게 유효하지만 처음부터 직접 만드는 것이 더 재미 있다고 생각했습니다. Chrome 및 Firefox에서 테스트되었습니다. border:solidIE 호환성이 있지만 최신 IE 버전에서 실제로 필요한지 알 수 없습니다. 테스트 할 IE가 없습니다.

px높이에서 이렇게 "진짜"바이트 수에 포함되지 않는다 "실행 코드"의 이익을 위해 존재한다. 브라우저없이 잘 작동합니다.

<p style=height:20px;border:solid onClick=t=this;t.innerHTML=(t.e=!t.e)?'x':''>

이전 버전:

<p id=d style="width:20px;height:20px;border:solid 1px"onClick="d.innerHTML=d.innerHTML=='x'?'':'x'"align=center>


1
당신은 id=d제거 할 수 있습니까 d=this?
Kritixi Lithos

1
@KritixiLithos-실제로 할 수 있습니다. 감사하고 잘 발견 :)
ElPedro

1
너비를 설정할 필요가 없으며 규칙에 따르면 너비는 모든 크기가 될 수 있습니다. 속성에 상태를 this저장하면 ID 설정을 저장합니다. 당신이 저장하는 경우 this속성에 몇 바이트를 절약 할 수 있습니다. 는 align불필요합니다. 속성 문자열에는 공백이 없으므로 따옴표가 필요하지 않습니다. <p style=height:20px;border:solid onClick=t=this;t.innerHTML=(t.e=!t.e)?'x':''>79 바이트
1

@ 1 월-감사합니다! 폭 비트는 내 자신의 전문 자부심입니다. 내가 그것을 설정하지 않으면 그것은 추한 것처럼 보이고이 대답은 결코 이길 수 없으며 대안으로 게시되었으므로 아마도 거기에 남겨 둘 것입니다. 그 외에는 좋은 힌트가 있습니다. 많은 감사합니다. 내일 업데이트합니다.
ElPedro

감사합니다 @Easterly. 코드를 업데이트했지만 다른 비트는 잊었습니다. 늦겠다.
ElPedro

9

마인 크래프트 1.0.0, 1 바이트

Minecraft의 레버는 확인란의 모든 기준을 충족합니다. 이 답변은 레버를 펀칭해도 여전히 전환되는 이전 버전의 게임에만 유효합니다.

여기에 이미지 설명을 입력하십시오

@Connor O'Brien의 제안 된 바이트 수를 사용하여 득점했습니다.


두 답변 사이의 3 차이는 거의 합의를 이루지 못하지만 Conor의 답변이 논란의 여지가 있으며 (현재 + 24 / -10 ) 수락 된 답변 이 압도적으로 잘 받아 ( + 17 / -0 ) 생각합니다. 후자는 Minecraft 답변의 점수를 매기는 데 사용됩니다.
데니스

그러나 마인 크래프트 1.0.0에는 구조 블록이없는
ev3commander

1
그것은 하나 n:) BTW, 코너에서
코너 오브라이언

또는 당신은 유효 할 어떤 새로운 버전에서 왼쪽 및 오른쪽 마우스 버튼을 리 바인드 할 수; D
seadoggie01

@ ConorO'Brien 아닌가요 1 block? 왜 1 byte? 나는 mc가 모든 블록을 하나의 바이트로 저장한다고 생각하지 않는다.
RedClover

8

TI 기본, 15 바이트

While 1:Shade(0,9:Input :ClrDraw:Input :End

매우 간단합니다. 이 확인란은 화면의 약 40 %를 차지하며 흑백으로 번갈아 나타납니다. 체크하면, 화면은 다음과 같이 보일 것입니다 :

화면


8

모든 버전의 Windows 명령 줄, 3 바이트

(cmd.exe, 배치, powershell, 시작-> 실행 등)

osk

shift, ctrl, alt, capslock 키와 같은 몇 가지 "확인란"이있는 화면 키보드를 엽니 다. xgc 답변과 유사하며 SmileBASIC 답변 스크린 샷에서 영감을 얻었습니다.


7

옥타브, 36 20 바이트

uicontrol('sty','c')

@LuisMendo 덕분에 16 바이트가 절약되었습니다!


1
uicontrol('sty','c')또한 작동
Luis Mendo

@LuisMendo 감사합니다! 1/2 바이트 카운트가 저장되었습니다!
rahnema1 2012

7

KV Lang , 8 바이트

CheckBox

여기에 이미지 설명을 입력하십시오


kv lang이 실제로 실행될 수있는 기본 파이썬 환경을 가정하면 :

from kivy.app import runTouchApp
from kivy.lang import Builder
runTouchApp(Builder.load_string('CheckBox'))

이것은 기본 라이브러리에서 각 위젯으로 CheckBox포함 된 Kivy 위젯 이기 때문에 기본적으로 작동 kivy.Factory합니다.

그 간단한 문자열은 인스턴스를 생성 하며 위젯이 실행될 것으로 기대 CheckBox하기 때문에 runTouchApp사용할 수 있습니다 Builder.load_string.

load_string기본적으로 모든 kv 문자열 의 핸들 배경은 위젯의 단일 인스턴스가 정의 된 경우 (예 CheckBox:) 루트 위젯 위치로 올라갑니다 .

Application
    openGL Window
        root widget(mostly layout)
            main tree
            and some widgets
            ...

7

SmileBASIC, 49 바이트

@L
O=T
TOUCH OUT T,,
X=T<O!=X
KEY 1,""[X]GOTO@L

빈 상자와 SB의 글꼴에 체크 박스가 있습니다.
화면을 터치하여 확인란을 전환합니다 (마우스로 클릭하는 가장 가까운 것)

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

부정 행위 답변 :

0 바이트 :

(온 스크린 키보드에는 캡 잠금 및 삽입 키와 같은 확인란과 같은 기능을하는 버튼이 있습니다)

14 바이트 :

EXEC"SYS/SBGED

확인란과 같은 여러 버튼이있는 내장 그래픽 편집기를 엽니 다.


나는 네 번째 줄이 무엇을하는지 실제로 이해하지 못하지만 이것은 훌륭합니다. 설명해 주시겠습니까?
snail_

T<O화면 터치를 중지 !=하면 논리 XOR로 사용됩니다. X=X XOR (O && !T)
12Me21

7

C #, 124120 바이트

grabthefish 덕분에 4 바이트를 절약했습니다.

확인란이 선택되어 있고 선택되어 있지 않습니다 참고 : 편집으로 인해 그림은 코드의 내용을 정확하게 나타내지 않으며 "checkBox1"은 현재 코드와 함께 표시되지 않습니다.

using System.Windows.Forms;class P{static void Main(){var a=new Form();a.Controls.Add(new CheckBox());a.ShowDialog();}}

언 골프 : using System.Windows.Forms; class P{ static void Main(){ var a=new Form(); a.Controls.Add(new CheckBox()); Application.Run(a); a.ShowDialog(); } }


메타에서 이것에 대해 아무것도 찾지 못하면 메타에 대해 물어 보십시오.
Matthew Roh

에서 공백을 제거 할 수 있습니다 var a = new Form();.
clismique

@ Qwerp-Derp 계산을 위해 그것들을 제거했습니다. 방금 잘못된 것을 붙여 넣었습니다. 감사합니다.
satibel

a.ShowDialog();몇 바이트를 절약 할 수 있습니다
grabthefish

c #은 여전히 ​​자바를 잃지 만 @grabthefish에게 감사드립니다 :(
satibel


6

JavaScript가있는 HTML, 46 33 28 바이트

<body onclick=innerHTML^=1>0

v2

<body onclick=this.innerHTML^=1>0

v1

<body onclick=t=this;t.innerHTML=t.e=!t.e||''>

이것은 @ElPedro의 답변에 대한 변형입니다 : 확인란 만들기 . @Albert Renshaw의 도움으로 28 바이트로 줄였습니다. 더 줄일 수는 있지만 확인란 만들기와 동일하게 만듭니다.

전체 응용 프로그램 영역을 클릭 할 수 있습니다. 이 표시됩니다 0off상태와 1on상태. https://jsbin.com/nuhetiyocu/1/edit 에서 사용해보십시오


1
39 바이트에서 깔끔한 변형이 있습니다. <body onclick=t=this;t.innerHTML^=t?1:0상태 변화 사이의 16 픽셀 규칙은 논쟁의 여지가 있습니다.
Albert Renshaw

38<body onclick=this.innerHTML^=this?1:0
Albert Renshaw

1
오, 아니 당신의 도움으로 나는 이미 33에 아래로 있어요 :)
Jan

1
28<body onclick=innerHTML^=1>0
Albert Renshaw

1
컨테이너 안에 항상 값이 있으므로 값 body을 다른 요소 로 변경할 수 있습니다 . 그러나 방금 다른 답변 codegolf.stackexchange.com/questions/109155/create-a-checkbox/와 동일하게 만들 것이라는 것을 알았 습니다. 그래서 나는 그대로 둡니다.
Jan

6

Powershell v5 +, 94 바이트

($a=[Windows.Forms.Form]::new()).Controls.Add([Windows.Forms.Checkbox]::new());$a.ShowDialog()

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

이것은 매우 끔찍하지만, Add-Type또는로 using namespace- 문을 더 짧게 얻을 수 없으며 변수를 사용해야합니다. 폼을 표시하기 위해 객체를 재사용해야하며 사용할 수있는 Controls.Add()것은 아무것도 반환하지 않기 때문입니다.

ShowDialog 이 명령을 실행 한 후 상자가 대화 형이어야하려면 시스템에서 필수입니다. 그렇지 않으면 양식이 고정됩니다.

또한 (적어도 내 자신의) 시스템이 새로운 세션에서 자동 완성을 중지하기 전에 System.Windows.Forms.Form만 단축 할 수 있습니다 Windows.Forms.Form.


좋은! 버전 5 이상이 필요하다는 것을 추가하고 싶을 수도 있습니다.
briantist

@briantist가 업데이트되었습니다.
colsw

6

Excel VBA, 38 32 31 29 바이트

A1활성 Excel VBA 프로젝트의 첫 번째 시트에있는 셀 에 높이 = 9 및 너비 = 9의 확인란을 삽입하는 즉시 실행 창 기능

Sheet1.CheckBoxes.Add 0,0,9,9

-6 감사의 교환 pajonk하기 [A1],[A1],9,90,0,9,9

-1 교체 Sheets(1)하여[Sheet1]

-2는 위의 어리 석음을 깨닫고 Sheet1대신 사용 했습니다.


1,1,9,9인수 로서도 효과가있는 것 같습니다 .
pajonk

1
당신은 필요하지 않습니다 Sheet(1)., 당신은 Excel에서 충분히 빨리 실행할 수 있지만 CheckBoxes활성 시트에 상속됩니다
Mr.Burns

@ Mr.Burns 여기에 체크인했지만 워크 시트 개체를 직접 참조하지 않으면 CheckBoxes.Add메서드에 "Object Required"라는 오류가 발생합니다.
Taylor Scott

@TaylorScott 당신은 맞습니다, 나는 정상적인 모듈이 아닌 시트 모듈에 코드를 넣었습니다 .. 내 실수 xD
Mr.Burns

4

VBA (워드), 74 57 바이트

테일러 스콧 덕분에 -17

Sub a()
f = a.FormFields.Add(Selection.Range, 71)
End Sub

문서의 파일 이름은 다음과 같아야합니다.


1
17 바이트를 절약 하기 위해 wdFieldFormCheckBoxwith 71( wdFieldFormCheckBox상수 의 정수 값 )를 대체 할 수 있습니다.
Taylor Scott

-2 바이트의 줄 바꿈을 제거 할 수 있다고 생각합니다.
devRicher

4

퍼그, 20 바이트

input(type=checkbox)

따옴표를 제거하면 여전히 Firefox 및 Chrome에서 작동하며 (IE에서 테스트 할 수 없음) 21에 올 것입니다.이 경우 예제에서 개선 된 것으로 간주하므로 유효합니다.
ElPedro

@ heonlygusti-실제로는 인용 부호가 없다면 :-) btw를 공표했을 것입니다.
ElPedro

그것이 필요하지 않은 인용문이 아니라면 투표권을 얻었을 것입니다.
NightSkyCode

@theonlygusti가 아닙니다. 시도 해봐.
NightSkyCode

4

Clojure에서, 201 195 145 127 바이트

(ns c(:require[quil.core :as q]))(def a(atom nil))(q/defsketch b :draw #(q/background(if@a 0 99)):mouse-clicked #(swap! a not))

를 제거하여 -6 바이트 m/fun-mode.

:setup:size옵션 을 제거하여 -50 바이트를 지정할 수 있습니다. 이는 기본값이 아니고 비-에서는 필요하지 않기 때문 fun-mode입니다. 또한 미들웨어에 대한 불필요한 가져 오기를 제거했습니다.

@ASCII 전용 덕분에 -18 바이트 "작은"색상으로 변경되었으며 역 참조 연산자 ( @) 앞에 불필요한 공간이 제거되었습니다 .

작성 퀼의 스케치 (처리를 통해 레이어를 제공하는 Clojure의 라이브러리) 따라서,이 실행할 수있는 퀼 라이브러리가 필요합니다.

(ns bits.golf.checkbox
  (:require [quil.core :as q]))

; Mutable global variable to hold the toggle state
(def a (atom nil))

(q/defsketch b
         ; Draw the background color to be either black or red depending on the toggle state.
         :draw #(apply q/background (if @a [0 0 0] [255 0 0]))

         ; Negate the state on mouse click
         :mouse-clicked #(swap! a not))

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오


255를 99로 바꿀 수 없습니까? 또한 기호 앞뒤에 공백을 제거하고 여전히 작동하는지 확인하려고합니다
ASCII 전용

@ASCII 전용 예, 가능합니다. 그것은 iirc를 통해 고르지 않은 색을 띠었고 어떤 이유로 나는 당시에 우선 순위를 매겼습니다. 그리고 아니요, 불행히도 제거 할 수있는 공간입니다.
Carcigenicate

@ ASCII-only 문제는 기호가 거의 모든 문자를 포함 할 수 있다는 것입니다. 따라서 공백을 제거 할 수있는 유일한 "안전한 이웃"은 모든 종류의 괄호 또는 따옴표입니다. 운 좋게도 이것은 전자에 대한 리스프입니다.
Carcigenicate

흠 아마도 [0 0 99]그때? (어떤 종류의 진한 파란색)
ASCII 전용

@ ASCII-only 실제로, 나는 그것에 대해 생각하기 때문에 0을 떨어 뜨릴 수 있다고 생각합니다. 벡터가 짧으면 Quil 자동이 앞을 0으로 채 웁니다. 최신을 기억하면 문제를 해결하겠습니다. 생각하게 해줘서 고마워
Carcigenicate

4

인화점 스크립팅 언어, 273 바이트

확인란을 표시하려면

createDialog"b"

그러나 먼저 정의해야합니다.

다음을 description.extmission 폴더에 이름이 지정된 파일에 저장하십시오 .

class b{idd=999;movingEnable=1;class controls{class c{idc=457;x=0.1;y=0.1;w=0.1;h=0.1;text="";action="if(ctrlText 457=={})then{ctrlSetText[457,{V}]}else{ctrlSetText[457,{}]}";type=1;style=2;colorText[]={1,1,1,1};font="tahomaB36";sizeEx=0.1;}}}

작동중인 확인란 :


3

AutoIt , 78 바이트

GUICreate(0)
GUISetState(GUICtrlCreateCheckbox(0,0,0))
Do
Until GUIGetMsg()=-3

다른 창과 같이 닫을 수있는 최대화 된 창을 엽니 다. 최대화와 온-톱-니스는 골프의 부작용입니다.

여기에 이미지 설명을 입력하십시오


Linux에서 이것을 어떻게 실행합니까?
dkudriavtsev

@wat wine AutoIt3.exe script.au3의 경우 script.au3파일이 코드가 포함되어 있습니다.
mınxomaτ 2018

3

파이썬, 62 바이트

from tkinter import*
a=Tk()
Checkbutton(a).pack()
a.mainloop()
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.