그리기 전에 텍스트 상자의 크기 결정.안녕하세요,
텍스트 상자가 실제로 그려지기 전에 텍스트 상자의 크기를 가져올 수 있습니까?
저는 동적으로 창을 생성하고 객체를 정렬하는 스페이서를 생성해야합니다. 따라서 실제로 그리기 전에 여러 텍스트 상자 요소의 크기가 필요합니다.
건배
제목 : Re : 텍스트 상자의 크기를 결정하기 전에 그것을 그리기.Wait (0)을 시도 할 수 있습니다. 이것은 기본적으로 말합니다 : 작업이 완료 될 때까지 기다리십시오.
제목 : Re : 텍스트 상자의 크기를 결정하기 전에 그것을 그리기.다음은 텍스트 상자 높이를 결정할 때 사용하는 함수입니다. hide (1) 인수는 표시되지 않도록합니다.
get_height = function({_text, _pixels},
{Default Local},
pname = "get_height";
if (is missing(_text),
// then
pix_height = 0;
,
// else if
_text == "",
pix_height = 0;
,
// else we've got some text to work with
tb = text box(_text, set wrap(_pixels), set width(_pixels), hide(1));
tmp_win = new window("test", tb);
// Get size info
pix_height = (tb << get size)[2];
tmp_win << close window;
);
pix_height;
); // end get_height
제목 : Re : 텍스트 상자의 크기를 결정하기 전에 그것을 그리기.안녕 데이비드,
기본적으로 그 것은 내가 마지막에했던 것입니다. 단지 창을 지우지 않고 "<< Set Width"라는 텍스트 상자에 올바른 크기의 메시지를 보냅니다.
! BEWARE!
시도하는 모든 사람 : 초기 창을 그린 후에 "<< Get Size"를 사용하여 측정을 수행하기 전에 잠시 기다려야합니다. 기다림 (0.0001)은 나를 위해 충분했다. 네가하지 않으면 이상한 일들이 일어난다. (그것은 나를 알아내는 데 반나절이 걸렸다).
! BEWARE!
제목 : Re : 텍스트 상자의 크기를 결정하기 전에 그것을 그리기.조잡한 방법 - 내용이 들어있는 창을 만든 다음 크기를 얻기 위해 메시지를 보낸 다음 창을 삭제합니다. 실제로 렌더링되기 전에 잘랐습니다. 그런 다음 크기를 사용하여 창을보다 우아하게 렌더링하십시오.이 기술을 사용해야합니다. 때로는 Windows와 Mac에서 일관된 출력을 얻으려고합니다.
제목 : Re : 텍스트 상자의 크기를 결정하기 전에 그것을 그리기.그래, 가능하지만 코드를 더 쉽게 읽을 수 있도록 동일한 데이터 테이블과 함께 상호 작용하는 일부 GUI 요소를 유지하려고했습니다. 따라서 사전에 치수를 나타내는 메시지를 보내는 것이 좋을 것입니다. Chrismas가 곧 나옵니다. 그래서 저는 그것을 위시리스트에 올려 놓았습니다.
제목 : Re : 텍스트 상자의 크기를 결정하기 전에 그것을 그리기.네, 가능합니다,
코드를 더 쉽게 읽을 수 있도록 동일한 데이터 테이블과 함께 상호 작용하는 일부 GUI 요소를 유지하려고했습니다.
따라서 사전에 치수를 나타내는 메시지를 보내는 것이 좋을 것입니다.
Chrismas가 곧 나옵니다. 그래서 저는 그것을 위시리스트에 올려 놓았습니다.
제목 : Re : 텍스트 상자의 크기를 결정하기 전에 그것을 그리기.정렬 및 레이아웃을 담당하는 기존의 디스플레이 상자를 모두 소진 했습니까? 자동적 인 행동은 '자신의 것을 굴려 라'는 필요성을 줄이거 나 없앨 수 있습니다.
제목 : Re : 텍스트 상자의 크기를 결정하기 전에 그것을 그리기.텍스트 상자에 'ShowProperties ()'를 입력하여 이해 한 메시지를 확인 했습니까? 나는 필요한 크기가 당신이 그것에 넣고 싶은 텍스트 (그리고 사용 된 폰트)에 달려 있다고 생각한다. 아래의 예는 JMP가 설정 한 너비를 존중하지만 상자를 그릴 때 높이를 무시하도록 강요한다는 것을 보여줍니다.
tb = TextBox();
tb << setWidth(20);
tb << setHeight(30);
Print(tb << getWidth, tb << getHeight, "\!n");
tb << setText("How now brown cow");
Print(tb << getWidth, tb << getHeight, "\!n");
NewWindow("Test", tb);
Print(tb << getWidth, tb << getHeight, "\!n");