Supercharge Your User Interfaces in JSL( US 2018 113 ) 에서 몇 가지 흥미로운 코드를 발견했으며 이를 테이블 스크립트(데모 테이블 첨부)로 약간 수정하여 구현하려고 합니다.
내가 적용하고 싶은 마지막 손질은 다음과 같습니다.
- 스크립트에서 그림 크기를 설정합니다(이상적으로는 원본 가로 세로 비율을 유지합니다.
난 노력 했어; 예를 들어 'one_pic << Set Size({200,200})' 및 'one_pic << scale (.2)'; 43행에서 시작하는 if() 함수 내부의 다른 위치에 있으며 다른 위치에서도 이 메시지를 시도했습니다. 성공하지 못했습니다. - 네임스페이스 사용에 자신감이 없고 변수 및 참조에 대한 경험이 많지 않기 때문에 스크립트는 'dt = 현재 데이터 테이블()'을 사용하여 스크립트가 저장된 테이블을 다시 참조합니다.
이것이 올바른 계산적 접근 방식입니까, 아니면 경험이 없는 스크립터가 수행하는 방식입니까?
도와 줘서 고맙다.
여기서 하나의 추가 변수를 사용해야 하는 이유가 무엇인지 정확히 모르겠습니다. 그렇지 않으면 테이블의 이미지 크기를 조정하려고 시도하지만 수행할 수 없을 수도 있습니다.
Names Default To Here(1);
dt = Current Data Table();
name_list = dt:name << get values;
num_list = dt:number << get values;
pic_list = dt:picture << get values;
nw = New Window("row",
V List Box(
tb = Text Box("some row"),
H List Box(
Panel Box("names & numbers",
V Scroll Box(
tbox = Table Box(String Col Box("Name", name_list), String Col Box("Number", num_list), )
)
),
Panel Box("pics",
pb = picture box()
)
)
)
);
tb << set font style("Italic") << font color("Dark Blue") << set font("Stencil", 16) << set width(450);
tbox << set underline headings(1) << set heading column borders(1) << set column borders(1) <<
set row borders(1) << set shade alternate rows(1) << set selectable rows(1);
tbox << set row change function(Function({this},
row_list = this << get selected rows;
If(N Rows(row_list) > 0,
k = row_list[1];
one_pic = pic_list[k];
pic = one_pic;
pic << Scale(0.2);
pb << set image(pic);
);
)
);
나는 일반적으로 테이블 스크립트를 사용하지 않지만 이런 경우에는 Current Data Table()을 사용하는 것이 좋을 것이라고 생각합니다. 경우에 따라 잘못된 테이블을 참조할 수도 있지만(예: 테이블 스크립트를 실행한 후 즉시 테이블을 변경하는 경우) 여기서는 문제가 아닐 가능성이 높습니다. 다른 옵션은 dt와 현재 데이터 테이블()을 삭제하고 :name, :number, :picture를 사용하는 것입니다. 그리고 테이블 스크립트가 항상 올바른 테이블을 참조하도록 알고 있기를 바랍니다. 이와 같은 간단한 테이블 스크립트).