zmiana rozdzielczosci ekranu, nie takie proste z win98 i ME

0

Witam

wziĄłem kod do zmiany rozdzielkczości monitora i ten kodzik działa bezbłędnie na Windows XP lecz pod Windows'em 98,ME i niewiem jak to jest na 2000 bo nie sprawdzałem , no ale do rzeczy ten kodzik nie działa tak jak powinien na win98 i me, i teraz pytanie ;(

Jak ten kod wymusić by prawidłowo działał?
Objawy:
po zmianie rozdzielczosci z 1024x768 na 800x600 nie ma paska Start i menu, po zmianie z 800x600 na 1024x768 pasek zostaje skrucony, czyli taki jaki był na 800x600 i jest wyzej i nie na miejscu.
Jak ktoś juz to miał i poprawił ten kodzik to prosze o podanie, a i prosze nie wysyłać mnie na zadne FAQ gdzie jest ten kodzik bo juz wszystkie sprwdzałem

;( ;( :( {glowa} -->> ( DELPHI 5 )

0

var
Mode: TDeviceMode;
begin
with Mode do
begin
dmSize:=SizeOf(Mode);
dmBitsPerPel:=16;//bity
dmPelsWidth:=640;//szer
dmPelsHeight:=480;//wys
dmFields:=DM_PELSWIDTH+DM_PELSHEIGHT;
ChangeDisplaySettings(Mode,0); - przepisz ten kod ale od linijki do linjjki - dokładnie!!!!!
end;

i powinno działać.

0

sory sle nie działa, a zresztą pisałem ze chyba wszystkie juz sprawdziłem ale prubujcie dalej moze jakiś sie trafi poprawny.

Chyba zrobie konkurs na poprawny kod do zmiany zozdzielczości w win98 i me?

a nagroda , jeszcze nie wymyślona ale myśle '! ! ! ! ! Njalepszy programista ! ! ! ! '-->> ( DELPHI 5 )

0

Nie popatrzylem na kod ZIOMBERA i zaczalem sam grzebac w MSDN. No i niezlaeznie wyszlo mi mniej wiecej to samo co ZIomberowi:

procedure TForm1.Button1Click(Sender: TObject);
var
mode:DEVMODE;
begin
mode.dmSize:=SizeOf(mode);
mode.dmPelsWidth:=1280;
mode.dmPelsHeight:=1024;
mode.dmFields:=DM_PELSWIDTH+DM_PELSHEIGHT;
if ChangeDisplaySettings(mode, CDS_UPDATEREGISTRY)&lt&gtDISP_CHANGE_SUCCESSFUL then
ShowMessage('Blad!!!');
end;

I dziala (D6, W98), wiec nie rozumiem, czemu o Ciebie nie.
Szczegoly mozesz doczytac:
http://msdn.microsoft.com/lib[...]ry/en-us/gdi/devcons_88s3.asp

szczegolnie jesli wsadzisz do swojego programu analize wartosci zwracanych (innych niz DISP_CHANGE_SUCCESFUL) to sie moze dowiesz, czemu nie dziala...

aha, ZIOMBER, najpierw zapomnialem o ustawieniu dmSize i tez dzialalo... No ale jak Microsoft kaze ustawiac, to bezpieczniej ustawiac.
No i Twoja linijka:
dmBitsPerPel:=16;//bity
nie zadziala chyba, jesli nie bedzie:
dmFields:=DM_PELSWIDTH+DM_PELSHEIGHT+DM_BITSPERPEL;

Pozdrowienia :)))--Pawel

Delphi6

0

dzieki wam ten ostatni kod zadziałał bez niczego.

wielkie dzieki jeszcze raz

:) ;) {browar} {browar} {hello} {brawo} -->> ( DELPHI 5 )

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0