Christian Budde wrote:
> +function GetTopMostWindows(Handle: HWND; Info: LongInt): BOOL; stdcall;

Shouldn't that be PtrInt for 64 bit compatibility ?

> +begin
> +  Result := True;
> +  if GetWindow(Handle, GW_OWNER) = 
> PTopMostEnumInfo(Info)^.W32Widget.AppHandle then

W32Widget does not need to be in that Info, TWin32WidgetSet(WidgetSet)
is global, and exists only once.

> +    if (GetWindowLong(Handle, GWL_EXSTYLE) and WS_EX_TOPMOST <> 0) and
> +      (PTopMostEnumInfo(Info)^.IncludeMain {or (Application.MainForm = nil) 
> or
> +      (Handle <> Application.MainForm.Handle)}) then
> +      PTopMostEnumInfo(Info)^.W32Widget.FTopMostList.Add(Pointer(Handle))

Why not put the list in PTopMostEnumInfo(Info) ?

> +    else
> +    begin
> +      PTopMostEnumInfo(Info)^.TopWindow := Handle;
> +      Result := False;

Why these two lines ?

> +        if GetWindowLong(Info.TopWindow, GWL_EXSTYLE) and WS_EX_TOPMOST <> 0 
> then
> +          Info.TopWindow := HWND_NOTOPMOST;
> +        for I := FTopMostList.Count - 1 downto 0 do

Why reverse order ?

Micha

_________________________________________________________________
     To unsubscribe: mail [EMAIL PROTECTED] with
                "unsubscribe" as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to