Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Динамическое OLE

Delphi , Технологии , OLE

Динамическое OLE

Чем компьютер лучше женщины:
1. Компьютер не скажет: "ты мне не нравишься, я люблю другого".
2. Кожух с компьютера снимается без сопротивления.
3. Изображение на компьютере легко поменять.
4. Звук на колонках легко выключить.
5. У компьютера не бывает месячных.
6. Компьютер не потащит тебя знакомится со своими родителями.
7. Память на компьютере можно увеличить.
8. У девушки не бывает режима турбо.
9. Вирусы компьютера пользователю не передаются.
10. Компьютер можно собрать из тех частей, которые тебе нравятся.
11. Компьютер можно отформатировать.
12. У компьютера не болит голова.
13. Компьютер можно иметь в присутствии других.
14. Компьютер можно иметь везде.
15. К компьютеру можно подключить дополнительные периферийные устройства.
16. Компьютер не залетит.
17. Компьютер потерпит любые извращения.
18. Компьютер не ревнует, когда вы имеете другой компьютер.
19. На компьютер можно поставить пароль.
20. Девушку нельзя перезагрузить и начать всё сначала.
21. Сетевой сервер может одновременно обслуживать уйму народа.
22. На компьютере можно играть с друзьями.
23. Компьютер не заставит тебя на нем женится.
24. Компьютер не обидится, если ты назовешь его другим именем.
25. На компьютере можно отлаживать чужие программы.
26. У компьютера не бывает тещи.
27. Компьютер всегда запомнит, что ему скажешь.
28. Компьютер никогда не опаздывает.
29. Компьютер не боится мышей.
30. Компьютер не требует постоянно спонсировать его.
31. С глюками компьютера легко справится.
32. Компьютер грузится быстрее.
33. Компьютер не волнует, когда ты кончишь.
34. Компьютер мыслит логически.
35. Компьютер не потеет.

Некоторое время тому назад вы задавали вопрос по поводу динамического OLE без создания диалогового окна для просмотра файла. Я таки добился этого и вот код...


uses...BOleDefs...

procedure TPreview.previewOLEFile(fileName: string);
var

  Info: ^BOleInitInfo;
  cString: array[0..80] of char;
begin

  Screen.Cursor := crHourGlass;
  try
    GetMem(Info, sizeof(BoleInitInfo));

    Info^.How := BOLE_EMBED;
    Info^.Where := BOLE_FILE;
    Info^.pContainer := nil;
    Info^.hIcon := 0;
    Info^.Storage := nil;

    StrPCopy(cString, fileName);
    Info^.Path := cString;

    oleDocument.PInitInfo := Info;
    ReleaseOLEInitInfo(Info); { данная функция освобождает (getmem) память ! }
    oleDocument.Visible := True;

  finally
    Screen.Cursor := crDefault;

  end;
end;

В этом сравнении с юмором между компьютером и женщиной подчеркиваются различия в их поведении, возможностях и ограничениях.

Код - это динамический просмотрщик OLE (Object Linking and Embedding), который позволяет пользователям просматривать файлы без создания окна диалога. Он использует модуль BOleDefs и определяет процедуру, называемую previewOLEFile, которая принимает имя файла в качестве входного параметра.

Вот что код делает:

  1. Screen.Cursor устанавливается в часовой механизм, указывая, что программа занята выполнением операции.
  2. Блок памяти выделяется с помощью GetMem и присваивается переменной Info, которая представляет собой структуру инициализации OLE.
  3. Структура Info инициализируется следующими полями:
    • How: Устанавливается в BOLE_EMBED, указывая, что файл должен быть встроен в документ.
    • Where: Устанавливается в BOLE_FILE, указывая, что файл является объектом на основе файла.
    • pContainer: Устанавливается в nil, указывая, что нет контейнера для объекта.
    • hIcon: Устанавливается в 0, указывая, что нет иконки, связанной с объектом.
    • Storage: Устанавливается в nil, указывая, что нет механизма хранения для объекта.
  4. Имя файла копируется в массив символов, называемый cString, с помощью StrPCopy.
  5. Поле Path структуры Info устанавливается в значение cString, представляющее собой путь к файлу.
  6. Поле PInitInfo объекта oleDocument присваивается структура Info, указывая, что это структура инициализации OLE.
  7. Функция ReleaseOLEInitInfo вызывается для освобождения памяти, выделившейся для структуры Info с помощью GetMem.
  8. Наконец, свойство Visible объекта oleDocument устанавливается в True, делая его видимым на экране.

Код заканчивается блоком finally, который сбрасывает курсор экрана в его 기본ное состояние.

В целом, этот код демонстрирует, как использовать динамический OLE для просмотра файлов без создания окна диалога.

Статья "Динамическое OLE" сравнивает компьютер с женщиной, подчёркивая преимущества первого над последней.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: OLE ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-10-12 16:43:08/0.0040359497070312/0