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

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

Надо запустить разные функции на разних виндах.


DeMoN-777 ©   (2002-06-17 16:31:00) 

Приветствую мастаков !
Такая трабла возникла..
Надо запустить разные функции на разних виндах.
Вопрос:
Как объяснить программе следующее:

if Win95\98\me then
begin
Моя процедура 1
...............
end;


If WinNT\2000\Xp then
begin
Моя процедура 1
...............
end;

Ну вот в принципе и вся трабла.


DeMoN-777   (2002-06-18 13:05:00) [1]

Большое спасибо всем откликнувшимся !


Игорь Шевченко   (2002-06-18 09:47:00) [2]

uses
SysUtils;

if Win32Platform = VER_PLATFORM_WINDOWNS then
MyProcedureYYY
else if Win32Platform = VER_PLATFORM_WIN32_NT then
MyProcedureXXX;

Pat © (17.06.02 17:47)

RTL Delphi при запуске приложения уже все определяет, можно не изобретать велосипед.


Pat   (2002-06-17 17:47:00) [3]


var data:OSVERSIONINFO;
Winda:string;
begin
data.dwOSVersionInfoSize:=sizeof(OSVERSIONINFO);
GetVersionEx(data);
Winda:="Unknown";
case data.dwPlatformId of
VER_PLATFORM_WIN32s:Winda:="Windows 3.11";
VER_PLATFORM_WIN32_WINDOWS:
begin
if data.dwMajorVersion>=4 then
begin
if data.dwMinorVersion<10 then Winda:="Windows 95 "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+
data.szCSDVersion;
if data.dwMinorVersion>=10 then
if data.szCSDVersion[1]="A" then
Winda:="Windows 98 "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+
" SE"
else
Winda:="Windows 98 "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+
data.szCSDVersion;

if data.dwMinorVersion>=90 then Winda:="Windows ME "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+
data.szCSDVersion;
end;
end;
VER_PLATFORM_WIN32_NT:
begin
if data.dwMajorVersion<=4 then Winda:="Windows NT "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+
data.szCSDVersion;;
if data.dwMajorVersion=5 then
begin
if data.dwMinorVersion=0 then Winda:="Windows 2000 "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+
data.szCSDVersion;;
if data.dwMinorVersion>=1 then Winda:="Windows XP "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+
data.szCSDVersion;;
end;
end;

end;
messagebox(handle,pchar(Winda),"OS",0);


Наверх

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