여기 설정의 변경시 커서 (캐럿) 위치를 변경하기 위해 두 번의 클릭이 필요합니다 (I 델파이 7 사용하고 있습니다를, 확실하지 않은이 나중에 일어날 경우/이전 버전) :RichEdit의 활성 형태 (델파이)
두 가지 형식으로 새 프로젝트를 만듭니다. 첫 번째 양식에 TMemo
, TRichEdit
및 TButton
을 입력하십시오. 및 TRichEdit
의 Lines
속성을 123456
으로 설정하십시오. TButton
의 OnClick
이벤트 핸들러에서 는 응용 프로그램을 실행 버튼 및 빈 Form2
보여 초점을 얻을 것이다를 클릭
Form2.Show;
을 넣어. Form1
의 TMemo
의 텍스트 "123456"을 클릭하면 포커스가 Form1
으로 다시 변경되고 커서 (캐럿)가 예상 한대로 클릭 한 텍스트 "123456"의 중간에 나타납니다. 다시 초점을 맞추려면 Form2
을 다시 클릭하십시오. Form1
에있는 TRichEdit
의 텍스트 "123456"을 클릭하면 포커스가 Form1
으로 다시 변경되지만 커서 (캐럿)는 클릭 한 텍스트 "123456"의 중간에 있지 않지만 RichEdit
의 두 번째 빈 줄 (또는 이전에 있었던 곳)에. TRichEdit
의 텍스트 "123456"중간에 두 번째 클릭하면 커서 (캐럿)가 예상대로 이동합니다.
따라서 TRichEdit
컨트롤은 포커스를 얻지 만 커서 (캐럿)는 예상대로 이동하지 않습니다.
참고 : 이것은 한 형식에서 다른 형식으로 포커스를 변경할 때만 발생합니다. 하나의 컨트롤에서 동일한 양식의 TRichEdit 컨트롤로 포커스를 변경하면이 문제가있는 동작이 발생하지 않습니다.
내 질문 : TRichEdit
내부의 두 번째 클릭이 필요 없으며 컨트롤이 TMemo
처럼 동작해야합니다.
미리 감사드립니다.
이 가장 가능성이 아무것도 Delphi와 관련이 있으며 이러한 Windows 컨트롤의 표준 동작 일뿐입니다. –
다른 응용 프로그램에서 포커스를 전환 할 때도 마찬가지입니다. –
@DavidHeffernan 그렇습니다. RichEdit 컨트롤은 Delphi 컨트롤이 아닌 Windows 컨트롤이므로 생각했습니다. 아직 이해할 수없고 해결책이 필요한 문제가되는 혼란스러운 행동입니다. – jedivader