TDateTimePicker의 글꼴을 기울임 꼴로 설정할 수 있습니까?TDateTimePicker.Font.Style을 Delphi 5에서 기울임 꼴로 설정하는 중 오류가 발생했습니다.
„Control” has no parent window.
이 델파이 5 기능, 아니면 내가 뭔가 잘못하고있는 중이 야 :이 코드
var
DatEdit : TDateTimePicker;
begin
//I know Canvas is a stupid name for TPanel
DatEdit:=TDateTimePicker.Create(Canvas);
DatEdit.OnEnter := CtrlInputProc;
DatEdit.OnExit := CtrlExitProc;
DatEdit.Enabled := false;
DatEdit.Font.Style := DatEdit.Font.Style + [fsItalic]; //this line creates an exception
DatEdit.Parent := Canvas;
end;
그리고 때마다 코드에서 그 일을하고하는 것은 EInvalidOperation 예외가 메시지와 함께 발생합니다, 마지막 줄을 실행 ?
부모에게이 구성 요소를 넣는 것은 나중에 purpouse에 의해 수행됩니다. 나는 종종 컨트롤 (TFrame의 자손)을 만들고 나중에 부모에 배치합니다. 저에게 이상한 것은 무엇입니까? 동일한 애플리케이션에서 TEdit 또는 TComboBox와 거의 동일한 코드를 사용하고 작동합니다. 그렇다면 TDateTimePicker가 Font.Style을 변형 할 때 Parent를 설정해야하는 이유는 무엇입니까? – smok1
BTW : "Canvas"라는 이름이 대체 될 가능성이 큽니다. – smok1
소스를 간략히 살펴보면 (예 : TEdit와 TDateTimePicker의 주요 차이점은 Comctrls에서 TDateTimePicker (TDateTimePicker.CMFontChanged()) 글꼴을 수정하면 컨트롤 자체가 무효화되므로 결과적으로 창 핸들. 해당 창 핸들을 얻으려면 기본 창 개체를 만들어야하며 컨테이너 창을 알고 있어야합니다. 창 핸들이 있는지 테스트하고 창 핸들이있는 경우에만 무효화하면이 문제를 피할 수 있습니다. 그러나이 세분화는 현재 구현의 일부가 아닙니다. – Deltics