mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-08 19:35:59 +02:00
Cocoa: Rework TCocoaWidgetSet.WindowFromPoint so that it works with libraries
git-svn-id: trunk@43817 -
This commit is contained in:
parent
99ba895921
commit
4c5854aba3
@ -84,6 +84,7 @@ type
|
|||||||
function lclGetPropStorage: TStringList; message 'lclGetPropStorage';
|
function lclGetPropStorage: TStringList; message 'lclGetPropStorage';
|
||||||
function lclGetTarget: TObject; message 'lclGetTarget';
|
function lclGetTarget: TObject; message 'lclGetTarget';
|
||||||
function lclDeliverMessage(Msg: Cardinal; WParam: WParam; LParam: LParam): LResult; message 'lclDeliverMessage:::';
|
function lclDeliverMessage(Msg: Cardinal; WParam: WParam; LParam: LParam): LResult; message 'lclDeliverMessage:::';
|
||||||
|
function lclIsHandle: Boolean; message 'lclIsHandle';
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ LCLViewExtension }
|
{ LCLViewExtension }
|
||||||
@ -176,6 +177,7 @@ type
|
|||||||
TCocoaMenu = objcclass(NSMenu)
|
TCocoaMenu = objcclass(NSMenu)
|
||||||
public
|
public
|
||||||
procedure lclItemSelected(sender: id); message 'lclItemSelected:';
|
procedure lclItemSelected(sender: id); message 'lclItemSelected:';
|
||||||
|
function lclIsHandle: Boolean; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TCocoaMenuItem }
|
{ TCocoaMenuItem }
|
||||||
@ -185,6 +187,7 @@ type
|
|||||||
menuItemCallback: IMenuItemCallback;
|
menuItemCallback: IMenuItemCallback;
|
||||||
procedure lclItemSelected(sender: id); message 'lclItemSelected:';
|
procedure lclItemSelected(sender: id); message 'lclItemSelected:';
|
||||||
function lclGetCallback: IMenuItemCallback; override;
|
function lclGetCallback: IMenuItemCallback; override;
|
||||||
|
function lclIsHandle: Boolean; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TCocoaButton }
|
{ TCocoaButton }
|
||||||
@ -215,6 +218,8 @@ type
|
|||||||
procedure mouseExited(event: NSEvent); override;
|
procedure mouseExited(event: NSEvent); override;
|
||||||
procedure mouseMoved(event: NSEvent); override;
|
procedure mouseMoved(event: NSEvent); override;
|
||||||
procedure resetCursorRects; override;
|
procedure resetCursorRects; override;
|
||||||
|
function lclIsHandle: Boolean; override;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TCocoaTextField }
|
{ TCocoaTextField }
|
||||||
@ -227,6 +232,7 @@ type
|
|||||||
function lclGetCallback: ICommonCallback; override;
|
function lclGetCallback: ICommonCallback; override;
|
||||||
procedure lclClearCallback; override;
|
procedure lclClearCallback; override;
|
||||||
procedure resetCursorRects; override;
|
procedure resetCursorRects; override;
|
||||||
|
function lclIsHandle: Boolean; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TCocoaSecureTextField }
|
{ TCocoaSecureTextField }
|
||||||
@ -238,6 +244,7 @@ type
|
|||||||
function becomeFirstResponder: Boolean; override;
|
function becomeFirstResponder: Boolean; override;
|
||||||
function resignFirstResponder: Boolean; override;
|
function resignFirstResponder: Boolean; override;
|
||||||
procedure resetCursorRects; override;
|
procedure resetCursorRects; override;
|
||||||
|
function lclIsHandle: Boolean; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -252,6 +259,7 @@ type
|
|||||||
function lclGetCallback: ICommonCallback; override;
|
function lclGetCallback: ICommonCallback; override;
|
||||||
procedure lclClearCallback; override;
|
procedure lclClearCallback; override;
|
||||||
procedure resetCursorRects; override;
|
procedure resetCursorRects; override;
|
||||||
|
function lclIsHandle: Boolean; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TCocoaPanel }
|
{ TCocoaPanel }
|
||||||
@ -284,6 +292,7 @@ type
|
|||||||
procedure mouseExited(event: NSEvent); override;
|
procedure mouseExited(event: NSEvent); override;
|
||||||
procedure mouseMoved(event: NSEvent); override;
|
procedure mouseMoved(event: NSEvent); override;
|
||||||
procedure sendEvent(event: NSEvent); override;
|
procedure sendEvent(event: NSEvent); override;
|
||||||
|
function lclIsHandle: Boolean; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -315,6 +324,7 @@ type
|
|||||||
procedure mouseExited(event: NSEvent); override;
|
procedure mouseExited(event: NSEvent); override;
|
||||||
procedure mouseMoved(event: NSEvent); override;
|
procedure mouseMoved(event: NSEvent); override;
|
||||||
procedure sendEvent(event: NSEvent); override;
|
procedure sendEvent(event: NSEvent); override;
|
||||||
|
function lclIsHandle: Boolean; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TCocoaCustomControl }
|
{ TCocoaCustomControl }
|
||||||
@ -345,6 +355,7 @@ type
|
|||||||
procedure flagsChanged(event: NSEvent); override;
|
procedure flagsChanged(event: NSEvent); override;
|
||||||
// other
|
// other
|
||||||
procedure resetCursorRects; override;
|
procedure resetCursorRects; override;
|
||||||
|
function lclIsHandle: Boolean; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TCocoaWindowContent }
|
{ TCocoaWindowContent }
|
||||||
@ -360,6 +371,7 @@ type
|
|||||||
procedure viewWillMoveToWindow(newWindow: NSWindow); override;
|
procedure viewWillMoveToWindow(newWindow: NSWindow); override;
|
||||||
procedure dealloc; override;
|
procedure dealloc; override;
|
||||||
procedure setHidden(aisHidden: Boolean); override;
|
procedure setHidden(aisHidden: Boolean); override;
|
||||||
|
function lclIsHandle: Boolean; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TCocoaScrollView }
|
{ TCocoaScrollView }
|
||||||
@ -373,6 +385,7 @@ type
|
|||||||
function lclGetCallback: ICommonCallback; override;
|
function lclGetCallback: ICommonCallback; override;
|
||||||
procedure lclClearCallback; override;
|
procedure lclClearCallback; override;
|
||||||
procedure resetCursorRects; override;
|
procedure resetCursorRects; override;
|
||||||
|
function lclIsHandle: Boolean; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -417,6 +430,7 @@ type
|
|||||||
procedure comboBoxWillDismiss(notification: NSNotification); message 'comboBoxWillDismiss:';
|
procedure comboBoxWillDismiss(notification: NSNotification); message 'comboBoxWillDismiss:';
|
||||||
procedure comboBoxSelectionDidChange(notification: NSNotification); message 'comboBoxSelectionDidChange:';
|
procedure comboBoxSelectionDidChange(notification: NSNotification); message 'comboBoxSelectionDidChange:';
|
||||||
procedure comboBoxSelectionIsChanging(notification: NSNotification); message 'comboBoxSelectionIsChanging:';
|
procedure comboBoxSelectionIsChanging(notification: NSNotification); message 'comboBoxSelectionIsChanging:';
|
||||||
|
function lclIsHandle: Boolean; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TCocoaScrollBar }
|
{ TCocoaScrollBar }
|
||||||
@ -430,6 +444,7 @@ type
|
|||||||
function lclGetCallback: ICommonCallback; override;
|
function lclGetCallback: ICommonCallback; override;
|
||||||
procedure lclClearCallback; override;
|
procedure lclClearCallback; override;
|
||||||
procedure resetCursorRects; override;
|
procedure resetCursorRects; override;
|
||||||
|
function lclIsHandle: Boolean; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TCocoaListView = objcclass;
|
TCocoaListView = objcclass;
|
||||||
@ -485,6 +500,7 @@ type
|
|||||||
// key
|
// key
|
||||||
procedure keyDown(event: NSEvent); override;
|
procedure keyDown(event: NSEvent); override;
|
||||||
procedure keyUp(event: NSEvent); override;
|
procedure keyUp(event: NSEvent); override;
|
||||||
|
function lclIsHandle: Boolean; override;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -499,6 +515,7 @@ type
|
|||||||
function lclGetCallback: ICommonCallback; override;
|
function lclGetCallback: ICommonCallback; override;
|
||||||
procedure lclClearCallback; override;
|
procedure lclClearCallback; override;
|
||||||
procedure resetCursorRects; override;
|
procedure resetCursorRects; override;
|
||||||
|
function lclIsHandle: Boolean; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure SetViewDefaults(AView: NSView);
|
procedure SetViewDefaults(AView: NSView);
|
||||||
@ -519,6 +536,11 @@ end;
|
|||||||
|
|
||||||
{ TCocoaWindowContent }
|
{ TCocoaWindowContent }
|
||||||
|
|
||||||
|
function TCocoaWindowContent.lclIsHandle: Boolean;
|
||||||
|
begin
|
||||||
|
Result:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
function TCocoaWindowContent.lclOwnWindow: NSWindow;
|
function TCocoaWindowContent.lclOwnWindow: NSWindow;
|
||||||
begin
|
begin
|
||||||
if not isembedded then
|
if not isembedded then
|
||||||
@ -590,6 +612,11 @@ end;
|
|||||||
|
|
||||||
{ TCocoaPanel }
|
{ TCocoaPanel }
|
||||||
|
|
||||||
|
function TCocoaPanel.lclIsHandle: Boolean;
|
||||||
|
begin
|
||||||
|
Result:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
function TCocoaPanel.windowShouldClose(sender: id): LongBool;
|
function TCocoaPanel.windowShouldClose(sender: id): LongBool;
|
||||||
var
|
var
|
||||||
canClose: Boolean;
|
canClose: Boolean;
|
||||||
@ -758,6 +785,11 @@ end;
|
|||||||
|
|
||||||
{ TCocoaWindow }
|
{ TCocoaWindow }
|
||||||
|
|
||||||
|
function TCocoaWindow.lclIsHandle: Boolean;
|
||||||
|
begin
|
||||||
|
Result:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
function TCocoaWindow.windowShouldClose(sender: id): LongBool;
|
function TCocoaWindow.windowShouldClose(sender: id): LongBool;
|
||||||
var
|
var
|
||||||
canClose: Boolean;
|
canClose: Boolean;
|
||||||
@ -928,6 +960,11 @@ end;
|
|||||||
|
|
||||||
{ TCocoaScrollView }
|
{ TCocoaScrollView }
|
||||||
|
|
||||||
|
function TCocoaScrollView.lclIsHandle: Boolean;
|
||||||
|
begin
|
||||||
|
Result := True;
|
||||||
|
end;
|
||||||
|
|
||||||
function TCocoaScrollView.acceptsFirstResponder: Boolean;
|
function TCocoaScrollView.acceptsFirstResponder: Boolean;
|
||||||
begin
|
begin
|
||||||
Result := True;
|
Result := True;
|
||||||
@ -965,6 +1002,11 @@ end;
|
|||||||
|
|
||||||
{ TCocoaScrollBar }
|
{ TCocoaScrollBar }
|
||||||
|
|
||||||
|
function TCocoaScrollBar.lclIsHandle: Boolean;
|
||||||
|
begin
|
||||||
|
Result := True;
|
||||||
|
end;
|
||||||
|
|
||||||
function TCocoaScrollBar.acceptsFirstResponder: Boolean;
|
function TCocoaScrollBar.acceptsFirstResponder: Boolean;
|
||||||
begin
|
begin
|
||||||
Result := True;
|
Result := True;
|
||||||
@ -1002,6 +1044,11 @@ end;
|
|||||||
|
|
||||||
{ TCocoaGroupBox }
|
{ TCocoaGroupBox }
|
||||||
|
|
||||||
|
function TCocoaGroupBox.lclIsHandle: Boolean;
|
||||||
|
begin
|
||||||
|
Result := True;
|
||||||
|
end;
|
||||||
|
|
||||||
function TCocoaGroupBox.acceptsFirstResponder: Boolean;
|
function TCocoaGroupBox.acceptsFirstResponder: Boolean;
|
||||||
begin
|
begin
|
||||||
Result := True;
|
Result := True;
|
||||||
@ -1039,6 +1086,11 @@ end;
|
|||||||
|
|
||||||
{ TCocoaButton }
|
{ TCocoaButton }
|
||||||
|
|
||||||
|
function TCocoaButton.lclIsHandle: Boolean;
|
||||||
|
begin
|
||||||
|
Result := True;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCocoaButton.actionButtonClick(sender: NSObject);
|
procedure TCocoaButton.actionButtonClick(sender: NSObject);
|
||||||
begin
|
begin
|
||||||
// this is the action handler of button
|
// this is the action handler of button
|
||||||
@ -1167,6 +1219,11 @@ end;
|
|||||||
|
|
||||||
{ TCocoaTextField }
|
{ TCocoaTextField }
|
||||||
|
|
||||||
|
function TCocoaTextField.lclIsHandle: Boolean;
|
||||||
|
begin
|
||||||
|
Result := True;
|
||||||
|
end;
|
||||||
|
|
||||||
function TCocoaTextField.acceptsFirstResponder: Boolean;
|
function TCocoaTextField.acceptsFirstResponder: Boolean;
|
||||||
begin
|
begin
|
||||||
Result := True;
|
Result := True;
|
||||||
@ -1205,6 +1262,11 @@ end;
|
|||||||
|
|
||||||
{ TCocoaTextView }
|
{ TCocoaTextView }
|
||||||
|
|
||||||
|
function TCocoaTextView.lclIsHandle: Boolean;
|
||||||
|
begin
|
||||||
|
Result := True;
|
||||||
|
end;
|
||||||
|
|
||||||
function TCocoaTextView.acceptsFirstResponder: Boolean;
|
function TCocoaTextView.acceptsFirstResponder: Boolean;
|
||||||
begin
|
begin
|
||||||
Result := True;
|
Result := True;
|
||||||
@ -1240,6 +1302,11 @@ end;
|
|||||||
|
|
||||||
{ TCocoaSecureTextField }
|
{ TCocoaSecureTextField }
|
||||||
|
|
||||||
|
function TCocoaSecureTextField.lclIsHandle: Boolean;
|
||||||
|
begin
|
||||||
|
Result := True;
|
||||||
|
end;
|
||||||
|
|
||||||
function TCocoaSecureTextField.acceptsFirstResponder: Boolean;
|
function TCocoaSecureTextField.acceptsFirstResponder: Boolean;
|
||||||
begin
|
begin
|
||||||
Result := True;
|
Result := True;
|
||||||
@ -1265,6 +1332,11 @@ end;
|
|||||||
|
|
||||||
{ TCocoaCustomControl }
|
{ TCocoaCustomControl }
|
||||||
|
|
||||||
|
function TCocoaCustomControl.lclIsHandle: Boolean;
|
||||||
|
begin
|
||||||
|
Result := True;
|
||||||
|
end;
|
||||||
|
|
||||||
function TCocoaCustomControl.acceptsFirstResponder: Boolean;
|
function TCocoaCustomControl.acceptsFirstResponder: Boolean;
|
||||||
begin
|
begin
|
||||||
Result := True;
|
Result := True;
|
||||||
@ -1494,6 +1566,11 @@ begin
|
|||||||
Result := 0;
|
Result := 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function LCLObjectExtension.lclIsHandle: Boolean;
|
||||||
|
begin
|
||||||
|
result:=false;
|
||||||
|
end;
|
||||||
|
|
||||||
{ LCLControlExtension }
|
{ LCLControlExtension }
|
||||||
|
|
||||||
function RectToViewCoord(view: NSView; const r: TRect): NSRect;
|
function RectToViewCoord(view: NSView; const r: TRect): NSRect;
|
||||||
@ -1665,6 +1742,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ LCLWindowExtension }
|
{ LCLWindowExtension }
|
||||||
|
|
||||||
function LCLWindowExtension.lclIsVisible: Boolean;
|
function LCLWindowExtension.lclIsVisible: Boolean;
|
||||||
@ -1809,6 +1887,11 @@ end;
|
|||||||
|
|
||||||
{ TCocoaListView }
|
{ TCocoaListView }
|
||||||
|
|
||||||
|
function TCocoaListView.lclIsHandle: Boolean;
|
||||||
|
begin
|
||||||
|
Result:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
function TCocoaListView.acceptsFirstResponder: Boolean;
|
function TCocoaListView.acceptsFirstResponder: Boolean;
|
||||||
begin
|
begin
|
||||||
Result := True;
|
Result := True;
|
||||||
@ -1977,6 +2060,11 @@ end;
|
|||||||
|
|
||||||
{ TCocoaComboBox }
|
{ TCocoaComboBox }
|
||||||
|
|
||||||
|
function TCocoaComboBox.lclIsHandle: Boolean;
|
||||||
|
begin
|
||||||
|
Result:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
function TCocoaComboBox.acceptsFirstResponder: Boolean;
|
function TCocoaComboBox.acceptsFirstResponder: Boolean;
|
||||||
begin
|
begin
|
||||||
Result := True;
|
Result := True;
|
||||||
@ -2057,6 +2145,11 @@ end;
|
|||||||
|
|
||||||
{ TCocoaMenu }
|
{ TCocoaMenu }
|
||||||
|
|
||||||
|
function TCocoaMenu.lclIsHandle: Boolean;
|
||||||
|
begin
|
||||||
|
Result:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCocoaMenu.lclItemSelected(sender:id);
|
procedure TCocoaMenu.lclItemSelected(sender:id);
|
||||||
begin
|
begin
|
||||||
|
|
||||||
@ -2064,6 +2157,11 @@ end;
|
|||||||
|
|
||||||
{ TCocoaMenuITem }
|
{ TCocoaMenuITem }
|
||||||
|
|
||||||
|
function TCocoaMenuItem.lclIsHandle: Boolean;
|
||||||
|
begin
|
||||||
|
Result:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCocoaMenuItem.lclItemSelected(sender:id);
|
procedure TCocoaMenuItem.lclItemSelected(sender:id);
|
||||||
begin
|
begin
|
||||||
menuItemCallback.ItemSelected;
|
menuItemCallback.ItemSelected;
|
||||||
|
@ -988,13 +988,10 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
function TCocoaWidgetSet.IsWindow(handle: HWND): boolean;
|
function TCocoaWidgetSet.IsWindow(handle: HWND): boolean;
|
||||||
var
|
|
||||||
Obj: NSObject;
|
|
||||||
begin
|
begin
|
||||||
if handle <> 0 then
|
if handle <> 0 then
|
||||||
begin
|
begin
|
||||||
Obj := NSObject(handle);
|
Result := NSObject(handle).lclIsHandle;
|
||||||
Result := Obj.isKindOfClass(NSWindow);
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
Result := False;
|
Result := False;
|
||||||
@ -1002,42 +999,67 @@ end;
|
|||||||
|
|
||||||
function TCocoaWidgetSet.WindowFromPoint(Point: TPoint): HWND;
|
function TCocoaWidgetSet.WindowFromPoint(Point: TPoint): HWND;
|
||||||
var
|
var
|
||||||
r: TRect;
|
winrect: TRect;
|
||||||
windows: NSArray;
|
windows: NSArray;
|
||||||
subviews: NSArray;
|
win: integer;
|
||||||
contentView: NSView;
|
window: NSWindow;
|
||||||
i, n: integer;
|
|
||||||
obj: NSObject;
|
function ViewFromPoint(view:NSView): HWND;
|
||||||
|
var rect: TRect;
|
||||||
|
p:TPoint;
|
||||||
|
begin
|
||||||
|
Result:=0;
|
||||||
|
if not assigned(view) then
|
||||||
|
exit;
|
||||||
|
if view.lclIsHandle then
|
||||||
|
begin
|
||||||
|
p:=Point;
|
||||||
|
view.lclScreenToLocal(p.X,p.Y);
|
||||||
|
rect:=view.lclClientFrame;
|
||||||
|
if PtInRect(rect, p) then
|
||||||
|
Result:=HWND(view);
|
||||||
|
//debugln('Point:'+DbgS(p)+' Rect:'+DbgS(rect)+' Result:'+dbgS(Result));
|
||||||
|
end
|
||||||
|
//else
|
||||||
|
// debugln('No lcl');
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
function RecurseSubviews(view:NSView):HWND;
|
||||||
|
var sv:integer;
|
||||||
|
begin
|
||||||
|
// first check views subview if there is a embedded view
|
||||||
|
Result:=0;
|
||||||
|
sv:=0;
|
||||||
|
while (Result=0) and (sv<view.subviews.count) do
|
||||||
|
begin
|
||||||
|
Result:=RecurseSubviews(view.subviews.objectAtIndex(sv));
|
||||||
|
inc(sv)
|
||||||
|
end;
|
||||||
|
if Result=0 then
|
||||||
|
Result:=ViewFromPoint(view);
|
||||||
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Result := 0;
|
Result := 0;
|
||||||
if not assigned(NSApp) then
|
if not assigned(NSApp) then
|
||||||
Exit;
|
Exit;
|
||||||
|
|
||||||
windows := NSApp.windows;
|
windows := NSApp.windows;
|
||||||
|
for win := 0 to windows.count - 1 do
|
||||||
for i := 0 to windows.count - 1 do
|
|
||||||
begin
|
begin
|
||||||
obj:=windows.objectAtIndex(i);
|
window:=windows.objectAtIndex(win);
|
||||||
if obj.isKindOfClass(NSWindow) then
|
winrect := window.lclFrame;
|
||||||
begin
|
if PtInRect(winrect, Point) then
|
||||||
r := NSWindow(obj).lclFrame;
|
begin
|
||||||
if PtInRect(r, Point) then
|
Result:=RecurseSubviews(window.contentView);
|
||||||
begin
|
if Result<>0 then
|
||||||
//debugln('Point:'+DbgS(point)+' Rect:'+DbgS(r));
|
exit;
|
||||||
//todo: Find NSViews
|
|
||||||
{ contentView:=NSWindow(obj).contentView;
|
|
||||||
if assigned(contentView) then
|
|
||||||
begin
|
|
||||||
|
|
||||||
end; }
|
|
||||||
|
|
||||||
Result := HWND(obj);
|
|
||||||
Exit;
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
function TCocoaWidgetSet.GetRgnBox(RGN: HRGN; lpRect: PRect): Longint;
|
function TCocoaWidgetSet.GetRgnBox(RGN: HRGN; lpRect: PRect): Longint;
|
||||||
begin
|
begin
|
||||||
Result := ERROR;
|
Result := ERROR;
|
||||||
|
Loading…
Reference in New Issue
Block a user