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