- Получить версию windows
- Стили и темы Windows
- Как определить использует ли пользователь стили?
- Как получить имя текщего стиля и имя цветовой схемы?
- Пользовательский интерфейс Windows
- Как получить сообщение об изменении видео стиля?
- Манифест Windows XP
- Как отключать стили XP для отдельных контролов?
- Компонент TXPManifest
- Добавление картинки на кнопку, если используются стили XP
- Включение манифеста Windows XP в ресурсы приложения
- Windows XP манифест в Delphi
- Визуальные стили и темы оформления
- Delphi: Работа с устройствами в Windows
- Получение списка устройств
- Программирование на Delphi. Часть 1. Установка Delphi Community Edition (бесплатная версия)
- 1. Скачивание бесплатной версии Delphi
- 2. Установка Delphi Community Edition
Получить версию windows
Получить версию билда ехе-файла
Надо узнать и сравнить версии билда ехе файла, чтобы после каждого изменения не скидывать самому.
Установил Windows Vista SP2 бета версию, теперь не могу перейти на Windows XP
Всем Здравствуйте. Помогите может кто сталкивался с такой бедой, короче установил висту sp2 бета.
Как обновить версию Windows 10 Home до Windows 10 Pro?
Есть лицензионная Windows 10 Home. Хочу обновить ее до Pro версии. На сайте предлагают только.
Получить версию ОС
Почему данные не считываются? Выводятся нули. ЧЯДНТ? #pragma once #if !defined (__SAMPLE_DLL_H__).
в дельфе нет такого модуля
Добавлено через 22 минуты
нашел. может кому пригодится
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.
Получить версию продукта
Есть необходимость получить версию файла (exe / dll), которая отображается если в эксполере перейти.
Получить версию файла
Application.ProductVersion показывает версию в виде 0.0.5.7, а мне нужно получитьвесию без точек то.
Получить версию приложения
Как получить информацию о версии приложения программно? Т.е ту версию, которая устанавливается в.
Получить версию через WinAPI.
Нужно получить версию Windows, используя WinAPI, а конкретно функцию GetVersionEx. Функция.
Стили и темы Windows
Как определить использует ли пользователь стили?
if ThemeServices.ThemesEnabled then // Тема использется
Как получить имя текщего стиля и имя цветовой схемы?
uses ComObj, SyncObjs;
GetCurrentThemeName: function (pszThemeFileName: LPWSTR; cchMaxNameChars: Integer;
pszColorBuff: LPWSTR; cchMaxColorChars: Integer; pszSizeBuff: LPWSTR;
cchMaxSizeChars: Integer): HRESULT; stdcall ;
procedure TForm1.Button1Click(Sender: TObject);
FileName, ColorScheme, SizeName: WideString;
hThemeLib := LoadLibrary( ‘uxtheme.dll’ );
if hThemeLib > 0 then
GetCurrentThemeName := GetProcAddress(hThemeLib, ‘GetCurrentThemeName’ );
if Assigned(GetCurrentThemeName) then
PWideChar(ColorScheme), 255 , PWideChar(SizeName), 255 ));
// show the the theme path and file name.
// show the color scheme name
// show the size name
Пользовательский интерфейс Windows
В Delphi 7 впервые появилась возможность настраивать пользовательский интерфейс приложений для использования в Windows XP. Для этого в состав ресурсов приложения должен включаться манифест Windows XP. Это дополнение призвано обеспечить корректное взаимодействие элементов управления приложения с системной библиотекой ComCtl32.dll версии 6, используемой в Windows XP. Собственно все особенности работы приложений под управлением Windows XP вызваны именно появлением новой версии этой библиотеки. Впрочем, об этом подробно рассказывается ниже.
Как получить сообщение об изменении видео стиля?
TForm1 = class (TForm)
procedure WMTHEMECHANGED( var Msg: TMessage); message WM_THEMECHANGED;
procedure TForm1.WMTHEMECHANGED( var Msg: TMessage);
Label1.Caption := ‘Theme changed’ ;
Манифест Windows XP
Итак, начнем с манифеста. Он представляет собой документ в формате XML, содержащий всю информацию, необходимую для взаимодействия приложения и библиотеки ComCtl32.dll версии 6.
Следует отметить, что манифесты широко используются во многих продуктах и технологиях, работающих в операционных системах Microsoft. С полной схемой XML манифеста вы можете ознакомиться в документации Microsoft MSDN.
Как отключать стили XP для отдельных контролов?
Темы должны быть включены и манифест лежать на форме :
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ComCtrls, XPMan;
TForm1 = class (TForm)
procedure FormCreate(Sender: TObject);
procedure Unload2Themes( var M:TMSG); message WM_USER+ 1 ;
function SetWindowTheme(hwnd: HWND; pszSubAppName: LPCWSTR;
pszSubIdList: LPCWSTR): HRESULT; stdcall ; external ‘uxtheme.dll’ ;
procedure TForm1.Unload2Themes( var M: TMSG);
procedure TForm1.FormCreate(Sender: TObject);
PostMessage(Handle,WM_USER+ 1 , 0 , 0 )
Компонент TXPManifest
На странице Win32 Палитры компонентов Delphi 7 имеется компонент TXPManifest . Будучи добавленным в проект, он обеспечивает компиляцию манифеста Windows XP в исполняемый файл приложения. В качестве основы используется стандартный манифест Delphi для Windows XP, содержащийся в файле ресурсов Delphi7\Lib\WindowsXP.res:
Добавление картинки на кнопку, если используются стили XP
SetWindowLong(hwndButton,GWL_STYLE,GetWindowLong(hwndButton,GWL_STYLE) or BS_BITMAP);
SetWindowLong(hwndButton,GWL_STYLE,GetWindowLong(hwndButton,GWL_STYLE) or BS_ICON);
Включение манифеста Windows XP в ресурсы приложения
Так как использование стандартного компонента TXPManifest требует настройки исходного манифеста Delphi для каждого проекта, было бы неплохо изыскать более удобный способ. В качестве альтернативы вы можете подключить манифест к файлу вашего проекта и по мере надобности редактировать его, не опасаясь, что ваша забывчивость может отразиться на версиях в манифестах других приложений.
Для начала необходимо создать исходный файл ресурса RC, включающий единственную строку:
1 24 «ХР.manifest»
где 1 — номер ресурса версии библиотеки ComCtl32.dll, а 24 — номер ресурса манифеста (нумерация соответствует заголовочным файлам, распространяемых Microsoft); «ХР.manifest» — имя файла с документом XML, содержащим манифест. Естественно, манифест нужно настроить в соответствии с потребностями вашего проекта.
Теперь нужно откомпилировать файл ресурса при помощи строчного компилятора-ресурсов \Delphi7\Bin\brcc32.exe и разместить его в папке проекта.
И последняя операция — добавьте в исходный код файла проекта директиву подключения ресурса манифеста:
В результате при компиляции проекта манифест из ресурса будет добавлен в исполняемый файл приложения.
Windows XP манифест в Delphi
Windows XP манифест в Delphi
Данная статья рассказывает о том как сделать чтобы ваши проекты выглядели как Windows XP программы .
В Windows XP есть менеджер тем (theme manager) который изменяет вид большинства стандартных объектов Windows. Misrosoft утверждает что старые версии библиотеки comctl32.dll содержат код для поддержки различных платформ семейства Windows. Microsoft разумно решила почистить содержимое comctl32.dll для улучшения работы тем в Windows XP. Теперь получается что существует две версии библиотеки : старая ( версия 5.8) которая имеет обратную совместимость всех предыдущих версий Windows ( в том числе и XP) и новую версию ( версия 6) которая совместима только с XP ( ну и следующими версиями Windows).
По умолчанию все программы разработанные под Windows XO используют версию 5.8, получая тот же вид что и предыдущие приложения Windows. Для того чтобы использовать компоненты из библиотеки 6 версии в вашем приложении вы должны подключить к вашему приложению Manifest который Windows будет читать для того чтобы отрисовка компонентов производилось через новую библиотеку .
Визуальные стили и темы оформления
Теперь давайте более подробно разберемся с визуальными стилями и их влиянием на пользовательский интерфейс приложений.
Начиная с операционной системы Widows 95 пользователям был доступен пакет обновления Microsoft Plus!, который позволял использовать темы оформления рабочего стола Windows. Темой называется совокупность настроек цветов, шрифтов, курсоров и прочих ресурсов, необходимых для создания унифицированного пользовательского интерфейса.
Все параметры одной темы сохраняются в файле с расширением theme в виде секций и значений, подобно файлам INI. Существующие темы доступны для выбора в системном диалоге Display Options.
Визуальные стили, интегрированные в Windows ХР, управляют внешним видом и поведением элементов управления. При этом визуальный стиль использует настройки параметров пользовательского интерфейса, заданные текущей темой. Для управления темами визуального стиля операционная система использует менеджер тем.
Визуальный стиль позволяет настраивать внешний вид элементов управления в целом и его составных частей. Правила и методы отрисовки сохраняются в файле с расширением mst, который входит в состав визуального стиля.
Совместно с Windows XP поставляется только один визуальный стиль, и он составляет приятное и свежее впечатление о пользовательском интерфейсе операционной системы.
Delphi: Работа с устройствами в Windows
Получение списка устройств
Вторым параметром должен идти указатель на буфер, в который будет сохранена строка с именем класса. Третьим параметром должен идти размер передаваемого буфера. Если указанного буфера не хватит, то требуемый размер будет сохранён в переменной указатель, на которую мы передадим четвёртым параметром.
Список классов мы получили. Теперь нам надо получить список устройств, принадлежащих некоторому классу. Здесь к нам придёт на помощь функция SetupDiGetClassDevs:
- DIGCF_ALLCLASSES
Будет возвращён список всех устройств и всех классов, установленных в данный момент в системе. Первый параметр будет проигнорирован. - DIGCF_DEVICEINTERFACE
Возврат списка устройств, которые поддерживают интерфейсы. - DIGCF_DEFAULT
Возврат списка устройств, которые ассоциируются с системой по умолчанию. - DIGCF_PRESENT
Будет возвращён список устройств, которые в настоящее время присутствуют в системе. - DIGCF_PROFILE
Будет возвращён список устройств, которые являются частью текущего аппаратного профиля.
В нашем случае надо указать только класс устройств и указать последним параметром флаг DIGCF_PRESENT. При успешном вызове функция возвращает хендл полученного списка.
Итак, у нас есть список (вернее его хендл) и нам надо как-то перечислить все устройства находящиеся в нём. На помощь к нам придёт функция под названием SetupDiEnumDeviceInfo:
С первых параметром, я думаю, всё ясно. Второй парметр задаёт индекс в списке. Третий параметр это указатель на структуру SP_DEVINFO_DATA, в которой будет сохранена информация об устройстве. Если функция вернула значение TRUE, то информация извлечена успешно, а если FALSE, то в большинстве случаев это означает что мы пришли к концу списка. Для перечисления всего списка нам надо будет в цикле вызывать функцию SetupDiEnumDeviceInfo каждый раз увеличивая значение индекса на единицу до тех пор пока не получим отрицательный результат.
Итак, в Delphi у нас есть структура, в которой хранится информация об устройстве:
По сути, главным полем здесь является поле DevInst, которая и хранит хендл устройства. Для того чтобы получить имя устройства (или его описание) нам надо использовать функцию SetupDiGetDeviceRegistryProperty. Далее её описание
Второй параметр это указатель на структуру SP_DEVINFO_DATA. Третий параметр задаёт тип информации, которую мы хотим получить. Для нас важны два флага: SPDRP_FRIENDLYNAME и SPDRP_DEVICEDESC. Далее идёт опциональный параметр который задаёт указатель на переменную в которой будет сохранён тип данных ключа реестра, из которого была извлечена информация. Далее идёт ещё три параметра которые задают соответственно указатель на буфер для сохранения информации, размер буфера и размер реально скопированных данных в ненр. Если мы будем использовать флаг SPDRP_FRIENDLYNAME, то получим вместо модели жёсткого диска «дисковый накопитель», а при использовании флага SPDRP_DEVICEDESC мы получим модель жёсткого диска. Не всегда информация для обоих параметров представлена, иногда есть только для SPDRP_FRIENDLYNAME, а иногда есть только для SPDRP_DEVICEDESC. Если при использовании первого флага мы получили пустую строку, то надо получить информацию с использованием второго флага.
Следующая функция получает имя устройства по хендлу перечисления и структуре SP_DEVINFO_DATA.
В итоге в Delphi у нас вырисовывается функция, которая получает список устройств по заданному GUID»у класса.
Данная функция выводит список устройств заданного класса в компонент TreeView. Узел дерева TreeView задаётся первым параметром. Теперь мы можем написать функцию которая и произведёт вывод сего списка устройств в компонент TreeView. Вот она:
Сначала формируется список строк с имена классов и указателей на их GUID»ы. Потом производится вызов предыдущей функции для каждого класса.
Программирование на Delphi. Часть 1. Установка Delphi Community Edition (бесплатная версия)
Компания Embarcadero в 2018 году представила Delphi Community Edition — бесплатную версию легендарной среды разработки Delphi. Использовать её могут студенты, стартаперы, небольшие команды, некоммерческие организации. Условия использования: лицензия на использование продолжает действовать до тех пор, пока прибыль физического лица или компании от приложений Delphi не достигнет 5 000 долларов США, или штат команды разработчиков не превысит 5 человек.
Мы ставим Delphi в учебных целях, поэтому ее можно использовать бесплатно. А после заработка первых 5 тысяч долларов её можно приобрести: цены начинаются от 98 999 руб. (почти $1600).
С помощью Delphi Community Edition можно разрабатывать мультиплатформенные приложения на Windows, Android, iOS и macOS. В этой статье мы пошагово пройдём процесс установки среды и напишем тестовое приложение под Windows. Delphi всегда был инструментом для быстрого старта в разработке под Windows на языке Pascal, это мы сегодня и проверим.
Примерное время установки: около 40-60 минут.
1. Скачивание бесплатной версии Delphi
Для того, чтобы получить доступ к Delphi Community Edition, пройдите по этой ссылке https://www.embarcadero.com/ru/products/delphi/starter/free-download
Заполните форму, введенный пароль сохраните. В качестве компании я указал один из своих сайтов, телефон реальный, но мне никто пока что не звонил :). Главное: правильно укажите электронную почту.
На почту вам придёт письмо с ключом — его лучше сохранить. После отправки формы начнётся процесс загрузки. Если загрузка не начнётся, ссылка будет также в письме. Письмо вам необходимо — если оно не пришло, проверяйте спам. Если вообще не пришло, регистрируйтесь заново на другой ящик. Я регистрировался дважды на разные email — один на доменную почту, второй на Gmail. Оба раза всё было ок. Вот как выглядит письмо:
2. Установка Delphi Community Edition
Введите Serial number из письма в почте и нажмите Register.
Программа начнёт связываться с серверами Embarcadero и попытается зарегистрировать вашу копию. На одном компьютере у меня всё произошло мгновенно, на другом с третьей попытки. Судя по сообщениям, проблема была с серверами Embarcadero. Если всё получилось, переходите к следующему разделу статьи. Если нет, попробуйте сделать следующее. На скриншоте ниже кликните по ссылке «Trouble connection…»