목록 상자에 중복 값이 있을 수 없는 이유는 무엇입니까?내가 이것을 실행하면 :
lb = List Box({"qwerqwerr", "qwerqwerr"});
nwTest = New Window("Test ListBox Duplicate values", lb);한 줄만 포함된 목록 상자를 얻습니다. 왜?
목록 상자는 목록을 허용하고 목록은 중복 값을 가질 수 있는데 Lis Box는 왜 중복 값을 가질 수 없습니까?
중복 값이 있는 목록을 목록 상자에 전달하면 목록 상자에 표시되는 내용은 이제 추가 경고 또는 오류와 함께 전달된 목록이 아닙니다.
의도적으로 설계된 것입니까? 왜? 해결 방법이 있습니까?
고급 통계 모델링실험 설계Re: 목록 상자에 중복된 값이 있을 수 없는 이유는 무엇입니까?두 개의 서로 다른 창에 있는 두 개의 서로 다른 문자열 열 상자에 동일한 이름을 지정했습니다. 따라서 두 번째 할당이 첫 번째 할당을 덮어씁니다.
재미있는 동작 => 어떤 창에서 어떤 버튼을 눌러도 두 번째 창이 업데이트됩니다.
Re: 목록 상자에 중복된 값이 있을 수 없는 이유는 무엇입니까?그 '컨트롤'은 개요 상자로 시작하는 복합 개체입니다. 개요 상자를 마우스 오른쪽 버튼으로 클릭하고 편집 > 트리 구조 표시를 선택하여 구조(트리 표시)를 조사할 수 있습니다. 목록은 시작과 동일한 개체인 목록 상자에 표시됩니다.

Re: 목록 상자에 중복된 값이 있을 수 없는 이유는 무엇입니까?"라고 말씀하셨습니다. "scb"에 대해 다른 이름을 사용했어야 합니다. 결과적으로 현재와 같은 매우 재미있는 동작이 발생했습니다. " 어때?
Re: 목록 상자에 중복된 값이 있을 수 없는 이유는 무엇입니까?감사합니다!
"scb"에 대해 다른 이름을 사용했어야 합니다. 결과적으로 현재와 같은 매우 재미있는 동작이 발생했습니다.
어쨌든 여기서 사용되는 컨트롤은 다음과 같습니다.

내 스크립트에서 유사한 GUI를 사용하여 두 개의 열을 일치시켰지만 전체가 조금 더 복잡하고 두 번째 열에는 "높이=높이" 줄에 표시하고 싶지 않은 많은 보조 열이 있을 수 있습니다. 따라서 중복 값의 가능성이 있습니다.
지금은 모든 것을 고유하게 만들기 위해 "height=height;sex,name,age"로 표시하도록 설정했지만 이상적으로는 기본 열만 표시하려고 합니다.
Re: 목록 상자에 중복된 값이 있을 수 없는 이유는 무엇입니까?목록 상자가 제공된 목록의 고유한 항목을 사용한다는 점을 문서에서 지적해야 한다는 데 동의합니다. 목록 인수에는 고유 항목이 필요하지 않습니다. 문서를 사용하는 사람은 누구나 준비해야 합니다. 즉, 가능한 모든 동작이 예상됩니다.
따라서 귀하의 예가 가설에 불과하더라도 대상의 선택은 대상의 목적에 따라 달라집니다. 다음은 전체 경로에서 고유하지 않을 수 있는 단계 목록을 표시하는 예를 기반으로 하는 두 가지 접근 방식입니다. 한 방법은 직접 업데이트를 사용하고 다른 방법은 지속성을 위해 단계 목록을 사용합니다. (첫 번째 방법은 필요한 경우 문자열 열 상자에서 목록을 가져올 수 있습니다.)
Names Default to Here( 1 );
// directly update list of steps
New Window( "Move It 1",
H List Box(
Outline Box( "Control",
Line Up Box( N Col( 3 ),
Text Box( "" ),
Button Box( "Up",
scb << Add Element( "Up" )
),
Text Box( "" ),
Button Box( "Left",
scb << Add Element( "Left" )
),
Text Box( "" ),
Button Box( "Right",
scb << Add Element( "Right" )
),
,
Text Box( "" ),
Button Box( "Down",
scb << Add Element( "Down" )
),
Text Box( "" )
)
),
Outline Box( "Path",
Table Box(
scb = String Col Box( "Step", {} )
)
)
)
);
//use list as an intermediary structure
updatePath = Function( { list, text, obj },
Insert Into( list, Eval( text ) );
obj << Set( list );
Return( list );
);
path = List();
New Window( "Move It 2",
H List Box(
Outline Box( "Control",
Line Up Box( N Col( 3 ),
Text Box( "" ),
Button Box( "Up",
path = updatePath( path, "Up", scb );
),
Text Box( "" ),
Button Box( "Left",
path = updatePath( path, "Left", scb );
),
Text Box( "" ),
Button Box( "Right",
path = updatePath( path, "Right", scb );
),
Text Box( "" ),
Button Box( "Down",
path = updatePath( path, "Down", scb );
),
Text Box( "" )
)
),
Outline Box( "Path",
Table Box(
scb = String Col Box( "Step", path )
)
)
)
);Re: 목록 상자에 중복된 값이 있을 수 없는 이유는 무엇입니까?목록 상자가 목록이 아님을 이해합니다. 그게 그거다 받아들인다 입력으로 나열합니다. 설명서 어디에도 목록에 고유한 값만 있으면 된다고 나와 있지 않습니다. 예상치 못한 행동이었다.
예를 들어 문자열을 입력으로 받아들이는 텍스트 상자가 있다고 상상해 보십시오. 따라서 문자 'a'로 시작하지 않는 한 이 문자열을 상자에 표시합니다.문자열이 'a'로 시작하면 아무것도 표시되지 않습니다. 그리고 그것은 어디에도 문서화되어 있지 않습니다. 텍스트 상자가 때때로 비어 있는 이유를 해결하려는 사람에게는 정말 안타까운 일입니다.
Re: 목록 상자에 중복된 값이 있을 수 없는 이유는 무엇입니까?1. 목록 상자는 목록이 아닙니다. 데이터 구조로서 정확한 기대치나 인터페이스가 없습니다. 양방향 양방향 통신입니다. 연관 배열은 '문제'를 해결할 것입니다. 많은 사용자는 이러한 구조에 익숙하지 않거나 익숙하지 않지만 목록을 사용하는 것이 자연스럽다고 생각합니다. 목록은 목록 상자가 기능을 수행하는 데 필요한 데이터를 제공하기 위한 인수일 뿐입니다. 편리하게도 중복 항목은 자동으로 삭제됩니다.
2. 목록 상자가 고유한 선택 목록을 표시하는 개체이고 하나 이상의 항목을 선택해야 하는 사용자와의 상호 작용을 용이하게 한다는 점에서 중복이 발생하는 UI 구성 요소에 대한 잘못된 선택입니다. 목적에 맞는 다른 개체를 선택해야 합니다. 사용 사례는 UI의 다른 위치에서 선택한 순서가 지정된 목록을 저장해야 합니다. 문자열 열 상자는 이러한 용도로 좋은 선택이 될 수 있습니다.
Re: 목록 상자에 중복된 값이 있을 수 없는 이유는 무엇입니까?@David_Burnham , @Mark_Bailey 그리고 @txnelson
내 요점은 두 가지입니다.
1. 목록을 입력으로 허용하는 경우 - 목록을 변경하지 않고 있는 그대로 표시해야 합니다. 기본적으로 컨트롤에 입력된 항목이 표시되지 않는 것은 좋은 동작이 아닙니다. 고유해야 하는 경우 - 목록을 허용하지 말고 키가 라인이고 값이 무시되거나 다른 값인 연관 배열로 만드십시오. 또는 중복 값이 있는 목록이 입력으로 제공될 때 적어도 일종의 경고나 예외를 발생시킵니다.
2. 동일한 값을 구별하는 방법은 무엇입니까? 목록에 순서가 있습니다. 맞습니까? 사용자가 이러한 종류의 컨트롤을 사용하여 알고리즘의 단계, 사용자가 조립한 동일한 개체 집합, 실행할 보고서 등을 반영하는 많은 사용 사례를 생각해 낼 수 있습니다.
예를 들어 "Left", "Right", "Up" 및 "Down"의 네 가지 버튼이 있습니다. 사용자는 특정 결과를 얻기 위해 일부 알고리즘을 설정해야 합니다. 그는 연속적으로 버튼을 눌러 이것을 프로그래밍합니다. 버튼을 누를 때마다 목록에 단계가 추가됩니다. 단계 목록 만들기. 이 목록에는 동일한 단계가 포함되어 있습니다. 오른쪽, 오른쪽, 위, 오른쪽, 아래, 아래, 왼쪽. 이것은 목록입니다. List Box()라는 항목이 아닌 경우 이러한 목록을 어디에 표시합니까?
Re: 목록 상자에 중복된 값이 있을 수 없는 이유는 무엇입니까?처럼 @Mark_Bailey 목록 상자는 의도적으로 이러한 방식으로 동작합니다.
목록 상자는 사용자가 {"ImpurityA","ImpurityB","ImpurityC","ImpurityD"}와 같은 목록에서 값을 선택할 수 있도록 사용자 인터페이스 요소로 설계되었습니다.{"ImpurityA","ImpurityB","ImpurityC","ImpurityD","ImpurityB"}와 같은 목록을 제시하는 경우 사용자는 두 번째 "ImpurityB" 중 첫 번째를 선택해야 하는지 여부를 어떻게 알 수 있습니까?논리적으로 사용자에게는 고유한 값 목록이 제공되어야 하며 이것이 바로 목록 상자가 하는 일입니다.
그러나 나는 일반적으로 메시지를 쓰는 스크롤 로그로 ListBox를 사용하기 때문에 질문에 공감합니다.같은 줄을 두 번 가질 수 없기 때문에 이미 작성된 로그에 한 줄을 쓰려는 경우 문제가 발생합니다.이 사용 사례에서 나는 보통 줄 바꿈으로 문자열 메시지를 유지하고 여러 줄 텍스트 상자를 사용하여 문자열을 표시합니다.
사용 사례의 경우 ~이다 사용자가 선택할 수 있도록 하려면 위의 예에서 두 ImpurityB를 구별하는 보조 정보가 있을 수 있습니다. 이 경우 목록 상자에 표시할 복합 항목 목록을 작성할 수 있습니다.
{"불순물 A/배치 1",불순물 B/배치 1", ..., "불순물 B/배치 2"}
Re: 목록 상자에 중복된 값이 있을 수 없는 이유는 무엇입니까?목록 상자는 사용자 인터페이스에서 선택할 수 있는 항목을 제공하기 위한 것입니다. 이 개체의 동작만 지적했습니다. 동일한 값을 가진 경우 사용자가 원하는 항목을 어떻게 알 수 있습니까? 아마도 당신이 공유하지 않은 다른 디스플레이 상자가 당신의 목적에 도움이 될 것입니다.
Re: 목록 상자에 중복된 값이 있을 수 없는 이유는 무엇입니까?고유한 값 목록만 목록 상자에 표시되도록 지정하는 문서를 찾지 못했지만 테스트 결과 목록 상자와 연결된 목록 상자의 각 특정 값에 대해 단일 항목만 표시되는 것으로 나타났습니다. () 물체..