Ĺadny brzuch
No i drugi, prostszy kodzik :):
Ta procedurka przydaje się, jeżeli np. program ma funkcje, które działają tylko pod danym systemem i ich wywołanie w innym typie Win może powodować błąd.
do globalnego vara dodajemy
OSType : integer;
ta procedura pobiera typ systemu:
procedure GetOSType; var OS:TOsVersionInfo; begin OS.dwOSVersionInfoSize:=SizeOf(os); GetVersionEx(os); case os.dwMajorVersion of 4: OSType:=1; 5: OSType:=2; 6: OSType:=3; end; end;
procedura pomocnicza: podaje typy systemów:
procedure OSYTypes(linie:tstrings); begin with linie do begin clear; add(''); add('Win NT 4.0/Me/98/95'); add('Win XP/Server 2003 R2/Server 2003/2000'); add('Win Vista/Longhorn'); end; end;
(Pisane z pamięci, więc mogą być małe błędy)
najlepiej dać na formie w OnCreate lub OnShow
GetOSType;
a program będzie "znał" system
Przykład 1:
wykonuje procedure, jeżeli dobry system
procedure Button1.Click; begin if OSType=1 then WykonajProcedurePod95 else WywolajBlad; end;
Przykład 2:
zaznacza na liście Twój system operacyjny
OSYTypes(listbox1.items); listbox1.itemindex:=OSType;
Lipa, a czemu nie rozpoznaje 98 od 95 i Me albo 200 od XP. Funkcja GetVersionEx() dostarcza wielu więcej ciekawych rzeczy, niż te które pokazałeś (np właściwość dwPlatformId), wersje Minor i Build etc. Z resztą tu jest o wiele bardziej eleganckie i dokładne rozwiązanie oparte na tej samej funkcji: http://4programmers....ji_GetVersionEx To primo, a secundo - to już chyba mamy w FAQ :unsure: A po trzecie: czemu na forum zakładasz temat jako FAQ/Artykuł/Gotowiec ?
Użytkownik p1101 edytował ten post 19 czerwiec 2007, 20:39
czemu na forum zakładasz temat jako FAQ/Artykuł/Gotowiec ? eee... a gdzie miałem wrzucić?
ipa, a czemu nie rozpoznaje 98 od 95 i Me albo 200 od XP ponieważ kierowałem się tym, że znakomita ilość kodów podzielona jest na: działa na 2000/XP lub działa na 95/98 więc nie widziałem potrzeby, żeby je jeszcze rozdzielać...
Użytkownik Amidamaru edytował ten post 20 czerwiec 2007, 10:07
eee... a gdzie miałem wrzucić?
TUTAJ
Użytkownik pat edytował ten post 20 czerwiec 2007, 11:56
No to przepraszam :(
Już będę tam wrzucał :)
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Ta procedurka przydaje się, jeżeli np. program ma funkcje, które działają tylko pod danym systemem i ich wywołanie w innym typie Win może powodować błąd.
do globalnego vara dodajemy
OSType : integer;
ta procedura pobiera typ systemu:
procedure GetOSType; var OS:TOsVersionInfo; begin OS.dwOSVersionInfoSize:=SizeOf(os); GetVersionEx(os); case os.dwMajorVersion of 4: OSType:=1; 5: OSType:=2; 6: OSType:=3; end; end;
procedura pomocnicza: podaje typy systemów:
procedure OSYTypes(linie:tstrings); begin with linie do begin clear; add(''); add('Win NT 4.0/Me/98/95'); add('Win XP/Server 2003 R2/Server 2003/2000'); add('Win Vista/Longhorn'); end; end;
(Pisane z pamięci, więc mogą być małe błędy)
najlepiej dać na formie w OnCreate lub OnShow
GetOSType;
a program będzie "znał" system
Przykład 1:
wykonuje procedure, jeżeli dobry system
procedure Button1.Click; begin if OSType=1 then WykonajProcedurePod95 else WywolajBlad; end;
Przykład 2:
zaznacza na liście Twój system operacyjny
OSYTypes(listbox1.items); listbox1.itemindex:=OSType;
Lipa, a czemu nie rozpoznaje 98 od 95 i Me albo 200 od XP. Funkcja GetVersionEx() dostarcza wielu więcej ciekawych rzeczy, niż te które pokazałeś (np właściwość dwPlatformId), wersje Minor i Build etc. Z resztą tu jest o wiele bardziej eleganckie i dokładne rozwiązanie oparte na tej samej funkcji: http://4programmers....ji_GetVersionEx To primo, a secundo - to już chyba mamy w FAQ :unsure: A po trzecie: czemu na forum zakładasz temat jako FAQ/Artykuł/Gotowiec ?
Użytkownik p1101 edytował ten post 19 czerwiec 2007, 20:39
czemu na forum zakładasz temat jako FAQ/Artykuł/Gotowiec ? eee... a gdzie miałem wrzucić?
ipa, a czemu nie rozpoznaje 98 od 95 i Me albo 200 od XP ponieważ kierowałem się tym, że znakomita ilość kodów podzielona jest na: działa na 2000/XP lub działa na 95/98 więc nie widziałem potrzeby, żeby je jeszcze rozdzielać...
Użytkownik Amidamaru edytował ten post 20 czerwiec 2007, 10:07
eee... a gdzie miałem wrzucić?
TUTAJ
Użytkownik pat edytował ten post 20 czerwiec 2007, 11:56
No to przepraszam :(
Już będę tam wrzucał :)