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

Функция вызывает стандартный диалог Свойства

Delphi , Программа и Интерфейс , Диалоги и Фреймы



Автор: Babay_S
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Функция вызывает стандартный диалог "Свойства"

Зависимости: uses Activex;
Автор:       Babay_S
Copyright:   мои раскопки
Дата:        27 сентября 2002 г.
***************************************************** }

uses Activex;

function ObjectProperties(hOwner, uFlags: LongInt; sName, sParam: string):
  LongInt;
{Функция вызывает диалог "Свойства"
Параметры
hOwner - хэндл родителя.
uFlags - может принимать два значения - 1 для свойств принтера, 2 - для файла
sName - имя принтера или файла. Если вместо имени файла указаны папка или диск,
вызывается соответствующее окно свойств. Если указано "" - появляются свойства Системы.
sParam - название вкладки на пропертях, которую надо показать. Если предать пустую
строку или несуществующую вкладку - будет показана первая вкладка.
}

implementation

function ObjectProperties(hOwner, uFlags: LongInt; sName, sParam: string):
  LongInt;
var
  sNameW, sParamW: PWideChar;
  sNameL, sParamL: Integer;
begin
  SNameL := Length(sName) + 1;
  sNameW := CoTaskMemAlloc(SNameL * sizeof(WideChar));
  StringToWideChar(SName, SNameW, sNameL);
  SParamL := Length(sParam) + 1;
  sParamW := CoTaskMemAlloc(SParamL * sizeof(WideChar));
  StringToWideChar(SParam, SParamW, sParamL);
  Result := SHObjectProperties(hOwner, uFlags, sNameW, sParamW);
  CoTaskMemFree(sNameW);
  CoTaskMemFree(sParamW);
end;

Привет! Я переведу текст на русский язык:

Это фрагмент кода на Delphi, который реализует функцию ObjectProperties, которая вызывает стандартное окно "Свойства" с помощью Windows API. Функция принимает четыре параметра:

  • hOwner: Обратный handle родительского окна.
  • uFlags: Флаг, который может принимать два значения: 1 для свойств принтера или 2 для файловых свойств.
  • sName: Строка, представляющая имя принтера или файла. Если передается пустая строка, будет отображаться диалоговое окно системных свойств.
  • sParam: Строка, представляющая имя вкладки в диалоговом окне свойств, которое должно быть отображено. Если передается пустая строка или имя не существующей вкладки, будет отображена первая вкладка.

Вот разбивка кода:

  1. Функция объявляет два локальных переменных: sNameW и sParamW, которые являются указателями на WideChar.
  2. Она рассчитывает длину входных строк sName и sParam, добавляет 1 для учета null-терминирующего символа, и хранит эти длины в sNameL и sParamL.
  3. Она выделяет память с помощью CoTaskMemAlloc для WideChar строк и копирует входные строки в них с помощью StringToWideChar. Результаты хранятся в sNameW и sParamW.
  4. Она вызывает функцию Windows API SHObjectProperties с адресами выделенной памяти, передавая handle родительского окна (hOwner), флаг (uFlags), имя принтера/файла (sNameW) и имя вкладки (sParamW). Возвращаемое значение этой функции хранится в переменной Result.
  5. Наконец, она освобождает выделенную память с помощью CoTaskMemFree для обеих строк.

Использование Windows API-функции SHObjectProperties для отображения диалогового окна свойств. Эта функция требует WideChar строк, поэтому код конвертирует входные строки в формат WideChar с помощью StringToWideChar. Функции CoTaskMemAlloc и CoTaskMemFree используются для управления выделением памяти для этих WideChar строк.

Авторская заметка гласит, что этот код был изначально взят с веб-сайта delphibase.endimus.com, который appears to be an archive of Delphi-related resources.

Функция ObjectProperties вызывает стандартный диалог Свойства, позволяющий отображать свойства принтера, файла или системы.


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

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




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


:: Главная :: Диалоги и Фреймы ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 08:52:13/0.0059909820556641/0