Конференция "Corba" » Уничтожение IE Toolbar...
 
  • TUserClass © (04.07.08 12:35) [0]
    Доброй пятницы, знатоки!

    Вот обнаружилась проблема с моим до ужаса надоевшим тулбаром...

    Если открыть новое окно/вкладку Експлорера из окна уже открытого експлорера (например - Открыть ссылку в новом окне/вкладке), то при попытки закрытия последней, уничтожается тулбар, который находится в ней (что не удивительно) ... но почему-то тулбар начинает уничтожаться и в той вкладке/окне, из под которой была вызвана вышеописанная вкладка и происходит ошибка - как будто у них хендл одинаковый. Но ихние хендлы и хендлы родителей абсолютно разные. И причем это происходит только если вызывать новое окно/вкладку из уже открытого експлорера... Если просто по отдельности запустить 2 експлорера, то они чудесно закрываются .. как быть ? ((((
  • TUserClass © (04.07.08 12:43) [1]
    Изложу чуть понятнее...

    Если новая вкладка/окно было создано из другого окна ИЕ то при попытки закрыть хотя бы одно из них - пытаются уничтожиться все тулбары во всех вкладках, открытых из окна IE... (((

    Вот процедура создания - может где ошибка?

    function TMyIEBar.RegisterAndCreateWindow : boolean;
    var
     WC : TWndClass;
     Rect : TRect;
    begin
     Result := false;
     If MyWnd = 0 then begin
       If Parent = 0 then exit;
       ZeroMemory (@WC, SizeOf (WC));
       If not GetClassInfo (hInstance, Title1, WC) then
         With WC do
         begin
           style := CS_HREDRAW or CS_VREDRAW or CS_GLOBALCLASS;
           lpfnWndProc := @SimpleProc;
           cbClsExtra := 0;
           cbWndExtra := 0;
           hInstance := SysInit.HInstance;
           hIcon := 0;
           hCursor := LoadCursor(hInstance, IDC_ARROW);
           hbrBackground := 0;
           lpszMenuName := nil;                          
           lpszClassName := Title1;
         end;
       Windows.RegisterClass (WC);
       GetClientRect (Parent, Rect);
       CreateWindowEx(0, Title1, nil, WS_CHILD or WS_CLIPSIBLINGS,
                      Rect.Left, Rect.Top, Rect.Right - Rect.Left, Rect.Bottom - Rect.Top,
                      Parent, 0, hInstance, Pointer(Self));
    //    ShowMessage (IntToStr (Integer (MyWND)));
       Result := MyWnd <> 0;
     end;
    end;

 
Конференция "Corba" » Уничтожение IE Toolbar...
Есть новые Нет новых   [134430   +4][b:0][p:0.001]