Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание окна About [D5, D7, Win2k, WinXP]


Иванушка ©   (2005-06-09 08:40:00) 

Digitam, или как там тебя, обсуждение этой темы никак не закрыто.
Возможно я не правильно задал вопрос хотя по моему все понятно.
В репозитории форм находятся только одни заготовки в которых не прописано ни одного нормального кода. Да в VB я именно таким методом и понял откуда вытянуть данные о проекте, ну а в Delphi где-то конкретно спрятано. Спасибо за отклик.


Иванушка   (2005-06-09 10:43:00) [1]

-=XP=- © ты прав это то что я хотел. На самом деле как то велетело из башки то, что это простой екзешник. Короче я так понял этот самый uses Shell модуль с большим расширением, надо будет просмотреть поподробнее. Ну большое спасибочки всем. Пора возвращаться к работе.


Иванушка   (2005-06-09 10:36:00) [2]

P.N.P. в общем не плохая процедура. Но яне то имел в виду. Я о стандартном окне "Сведения о системе". Например зайди в dxdiag и на вкладке Если ничего не помогло нажми "Запуск MSInfo...".

>разработчики даже позаботились о выводе инфы о системе

вот тогда я имел именно это в виду. Ну и за это спасибо.
Digitman большое спасибо.


-=XP=-   (2005-06-09 10:23:00) [3]

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

ShellExecute(0, 'open', 'msinfo32.exe', '', '', SW_SHOW);

Это?


Digitman   (2005-06-09 10:18:00) [4]


>  откуда все это


из Windows Application Programming Interface
подробную инф-цию о ф-циях в составе этого API можно получить на msdn.microsoft.com


P.N.P.   (2005-06-09 10:15:00) [5]

>Иванушка   (09.06.05 09:32) [3]
>разработчики даже позаботились о выводе инфы о системе
uses Shellapi;
...

 ShellAbout(Handle, 'Project name','Advanced project info',Application.Icon.Handle);

Оно?


Иванушка   (2005-06-09 10:11:00) [6]

Да спасибочки, накидал ты для моих мозгов снадобья на недельку. Слушай откуда все это. Только не говори, что эхо войны.


Digitman   (2005-06-09 10:02:00) [7]


> Иванушка   (09.06.05 09:57) [7]


сведения о системе можно получить с использованием станд. Win32API-ф-ций GeytSystemInfo, GetVersionEx


Digitman   (2005-06-09 09:59:00) [8]

на Паскале объявление этой станд.структуры уже присутствует в модуле windows.pas

цитирую :

 PVSFixedFileInfo = ^TVSFixedFileInfo;
 {$EXTERNALSYM tagVS_FIXEDFILEINFO}
 tagVS_FIXEDFILEINFO = packed record
   dwSignature: DWORD;        { e.g. $feef04bd }
   dwStrucVersion: DWORD;     { e.g. $00000042 = "0.42" }
   dwFileVersionMS: DWORD;    { e.g. $00030075 = "3.75" }
   dwFileVersionLS: DWORD;    { e.g. $00000031 = "0.31" }
   dwProductVersionMS: DWORD; { e.g. $00030010 = "3.10" }
   dwProductVersionLS: DWORD; { e.g. $00000031 = "0.31" }
   dwFileFlagsMask: DWORD;    { = $3F for version "0.42" }
   dwFileFlags: DWORD;        { e.g. VFF_DEBUG | VFF_PRERELEASE }
   dwFileOS: DWORD;           { e.g. VOS_DOS_WINDOWS16 }
   dwFileType: DWORD;         { e.g. VFT_DRIVER }
   dwFileSubtype: DWORD;      { e.g. VFT2_DRV_KEYBOARD }
   dwFileDateMS: DWORD;       { e.g. 0 }
   dwFileDateLS: DWORD;       { e.g. 0 }
 end;
 TVSFixedFileInfo = tagVS_FIXEDFILEINFO;
 {$EXTERNALSYM VS_FIXEDFILEINFO}
 VS_FIXEDFILEINFO = tagVS_FIXEDFILEINFO;

теперь сравнивай это с C-декларацией и делай самостоятельные умозаключения


Иванушка   (2005-06-09 09:57:00) [9]

Да на счет
> эту самую системную инфу как вытящить

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


Иванушка   (2005-06-09 09:53:00) [10]

Digitman большое спасибо! Да я так и думал, что будет не просто.
В общем я думаю со временем разберусь. Только вот не напомнишь, какую роль игреат идентификатор VS_FIXEDFILEINFO после операторных скобок в этой структуре, а то с С++ я возился еще до армии, а там все мозги отбили.
Еще раз большое спасибо.

typedef struct _VS_FIXEDFILEINFO {  // vsffi  
   DWORD dwSignature;
   DWORD dwStrucVersion;
   DWORD dwFileVersionMS;
   DWORD dwFileVersionLS;
   DWORD dwProductVersionMS;
   DWORD dwProductVersionLS;
   DWORD dwFileFlagsMask;
   DWORD dwFileFlags;
   DWORD dwFileOS;
   DWORD dwFileType;
   DWORD dwFileSubtype;
   DWORD dwFileDateMS;
   DWORD dwFileDateLS;
} VS_FIXEDFILEINFO;


Digitman   (2005-06-09 09:45:00) [11]

есть в сети и куча готовых Делфи-компонентов, "вытаскивающих" эту инф-цию в готовом виде (в них, как правило, инкапсулирована функциональность GetFileVersionInfo)

зайди, например, на torry.net и набери строку поиска "AboutBox" - получишь минимум две ссылки на компоненты


Digitman   (2005-06-09 09:38:00) [12]


> Иванушка   (09.06.05 09:32) [3]


> нужно все что задается на закладке Options проекта


все это (если указано тобой в опциях) как раз и помещается компилятором в упомянутый ресурс


> в нем ставиш эту заготовочку дак в ней разработчики даже
> позаботились о выводе инфы о системе


ничто не мешает тебе единожды сделать такую "заготовочку" формы и поместить ее в репозиторий, возможно заменив стандартную AboutBox-заготовку на свою


> эту самую системную инфу как вытящить


ты про GetFileVersionInfo уже почитал в справке ? вник ? что-то непонятно там ?


Иванушка   (2005-06-09 09:32:00) [13]

Digitman спасибо за твои отзывы. Скажем так мне, нужно все что задается на закладке Options проекта. Ну ты говоришь, что мол на то заготовки и существуют, ну почему бы их не конкретизировать. Может я тебе надоел своим VB ну все-таки в нем ставиш эту заготовочку дак в ней разработчики даже позаботились о выводе инфы о системе. Сразу приятно и быстро, и как наглядный примерчик. Да, а в делфях эту самую системную инфу как вытящить не подскажешь.


Digitman   (2005-06-09 08:56:00) [14]

инф-цию о проекте Делфи размещает в ресурсах генерируемого pe-модуля, доступ к этой инф-ции в ран-тайм осуществляется с пом. ф-ции GetFileVersionInfo()


Digitman   (2005-06-09 08:45:00) [15]


> В репозитории форм находятся только одни заготовки в которых
> не прописано ни одного нормального кода.


так ведь на то и заготовки существуют !


> данные о проекте


не сподобишься ли конкретизировать, какие "данные о проекте" тебя интересуют ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо