Delphi - 창 작성 프로세스
1922 단어 Delphi
1、TCustomForm.Create
TCustomForm.Create TCustomForm.CreateNew;
2、TCustomForm.CreateNew;
FCanvas := TControlCanvas.Create;
TControlCanvas.Create;
TControlCanvas.CreateHandle;
3、TControlCanvas.CreateHandle;
FControl.GetDeviceContext(FWindowHandle);
TWinControl.GetDeviceContext(FWindowHandle);
4、TWinControl.GetDeviceContext(FWindowHandle);
TWinControl.GetDC(Handle);
:
TWinControl Handle TWinControl.GetHandle;
Property Handle; 。
5、 Handle , :(TWinControl)
Handle->GetHandle->HandleNeeded
6、TWinControl.HandleNeeded FHandle :
if FHandle = 0 then
begin
if Parent <> nil then Parent.HandleNeeded;
CreateHandle; // CreateHandle;
end;
7、TWinControl.CreateHandle
CreateWnd;
if FHandle = 0 then // FHandle
begin
CreateWnd;
...
end;
8、TWinControl.CreateWnd
CreateParams(Params);
//
CreateParams(Params);
with Params do
begin
...
// API , ,CreateWindowEx ...
if Windows.RegisterClass(WindowClass) = 0 then RaiseLastWin32Error;
...
CreateWindowHandle(Params);
...
end;
9、CreateWindowHandle(Params);
FHandle := CreateWindowEx(ExStyle, WinClassName, Caption, Style,
X, Y, Width, Height, WndParent, 0, WindowClass.hInstance, Param);
, FHandle 。
10、
CreateNew DoCreate
try
CreateNew(AOwner);
...
if OldCreateOrder then DoCreate;
finally
...
end;
11、DoCreate
OnCreate :
if Assigned(FOnCreate) then
try
FOnCreate(Self); // OnCreate;
except
Application.HandleException(Self);
end;
if fsVisible in FFormState then Visible := True;
우리 Oncreate 사건은 마지막에 촉발되었다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Delphi] TStringBuilder그리고 꼭 사용해야만 할까? 그림처럼 Heap 영역에 "Hello" 공간을 생성하고 포인팅을 한다. "Hello World" 공간을 새로 생성한 후 포인팅을 하게 된다. 결국 "Hello" 라는 String 객체가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.