mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-11 16:56:01 +02:00
Raise error for badly created control for "preferred status bar height" initialization. The local variable R is uninitialized (random value from stack) for badly implemented DLLs with forms. The problem is visible for TControl.ChangeBounds / TControl.DoSetBounds methods (randomly raised BoundsOutOfBounds)
git-svn-id: trunk@54120 -
This commit is contained in:
parent
491820a1f4
commit
b22e329287
@ -294,12 +294,19 @@ var
|
||||
Parent: HWND;
|
||||
PreferredSizeStatusBar: HWND;
|
||||
R: TRect;
|
||||
AErrorCode: Cardinal;
|
||||
begin
|
||||
Flags := WS_CHILD or WS_CLIPSIBLINGS or WS_CLIPCHILDREN;
|
||||
Parent := TWin32WidgetSet(WidgetSet).AppHandle;
|
||||
PreferredSizeStatusBar := CreateWindowExW(0, STATUSCLASSNAMEW,
|
||||
nil, Flags,
|
||||
0, 0, 0, 0, Parent, 0, HInstance, nil);
|
||||
if PreferredSizeStatusBar = 0 then
|
||||
begin
|
||||
AErrorCode := GetLastError;
|
||||
DebugLn(['Failed to create win32 control, error: ', AErrorCode, ' : ', GetLastErrorText(AErrorCode)]);
|
||||
raise Exception.Create('Failed to create win32 control, error: ' + IntToStr(AErrorCode) + ' : ' + GetLastErrorText(AErrorCode));
|
||||
end;
|
||||
GetWindowRect(PreferredSizeStatusBar, R);
|
||||
PreferredStatusBarHeight := R.Bottom - R.Top;
|
||||
DestroyWindow(PreferredSizeStatusBar);
|
||||
|
Loading…
Reference in New Issue
Block a user