На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Обязательно выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.

Этот раздел предназначен для вопросов, посвященных разработке компонентов, а также для тестирования собственных бесплатных компонентов с открытым исходным кодом.

Здесь запрещается:
1. Размещать ссылки на какие-либо коммерческие компоненты, реализующие требуемую функциональность.
2. Обсуждать и тестировать коммерческие компоненты или компоненты с закрытым кодом.
3. Давать ссылки на сайты с исходным кодом компонентов. Все тестируемые исходные коды должы быть размещены на сайте ИСХОДНИКИ.RU.
Модераторы: Rouse_, DimaBr
  
> Пишу мини компонент по работе с D&D через OLE , но при разрушении получаю ошибку Invalid pointer
    Начал написание компонента по мативам статьи http://delphinews.ru/booksnet/d3_lib/ch_04.htm
    но при закрытии формы с примером получаю ошибку Invalid pointer
    Что не так?
    Сообщение отредактировано: User32 -

    Прикреплённый файлПрикреплённый файлprimer3.zip (3.78 Кбайт, скачиваний: 122)
      Может так ?
      ExpandedWrap disabled
        destructor TFileDropTarget.Destroy;
        begin
          inherited Destroy;
        end;
         
        procedure TFileDropTarget.Unregisrer;
        var WorkHandle: HWND;
        begin
          if (FHandle <> 0) then begin
            WorkHandle := FHandle;
            FHandle := 0;
            ActiveX.CoLockObjectExternal(Self, False, True);
            ActiveX.RevokeDragDrop(WorkHandle);
            _Release;
          end;
        end;
         
        //--------------------------------------------------------------------
        procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
        begin
          FDropTarget.Unregisrer;
        end;
        Цитата DimaBr @
        Может так ?
        ExpandedWrap disabled
          destructor TFileDropTarget.Destroy;
          begin
            inherited Destroy;
          end;
           
          procedure TFileDropTarget.Unregisrer;
          var WorkHandle: HWND;
          begin
            if (FHandle <> 0) then begin
              WorkHandle := FHandle;
              FHandle := 0;
              ActiveX.CoLockObjectExternal(Self, False, True);
              ActiveX.RevokeDragDrop(WorkHandle);
              _Release;
            end;
          end;
           
          //--------------------------------------------------------------------
          procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
          begin
            FDropTarget.Unregisrer;
          end;

        Оно самое. Спасибо.
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0187 ]   [ 16 queries used ]   [ Generated: 3.05.24, 11:07 GMT ]