Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Problem z rozdzielczością
Domin10




Typ: neutral
Postów: 5
Zarejestrowany: Aug 2003
Problem z rozdzielczością

Kiedy stworze np. Form1 przy ustawieniach systemu 1024x768 i Form1 bedzie zajmować połowe monitora a następnie zmienie rozdzielczość 800x600 i uruchomie tę Form1 to ona będzie zajmować więcej powierzchni monitora niż przy uruchomieniu w rozdzielczości 1024x768 Jak temu zapobiec ? Chcę aby Form1 nie zależnie od rozdzielczości systemu nie zmieniała swoich rozmiarów.

18-08-2003 20:39
Pokaż profil Domin10  Wyślij email do Domin10   
Chudy
[TLHW]Wiktor



Typ: moderator
Postów: 574
Zarejestrowany: Aug 2002

Niewiem czy dobrze to rozumiem. Chcesz zrobić żeby np. forma zawsze zajmowała 50% ekranu nawet po zmianie roździelczości ?


_____________________________________________
Projekt "Thunder Cannons" nadchodzi...

19-08-2003 15:15
Pokaż profil Chudy  Wyślij email do Chudy   Odwiedź stronę Chudy       1220895
Domin10




Typ: neutral
Postów: 5
Zarejestrowany: Aug 2003

Chudy dobrze mnie zrozumiałeś ale nie chce wykorzystywać Form1.Width i Form1.Height ponieważ musiał bym zmienić rozmiar wszystkich kontrolek na formie a to wiąże sie z dużym problemem.Chce aby program zawsze uruchamiał się w rozdzielczości 1024x768 niezależnie od rozdzielczości ekranu.Rozdzielczość ekranu jest gdzieś zapisana pod Windows i można by ją podmienić ale nie wiem gdzie jest ten plik

19-08-2003 18:47
Pokaż profil Domin10  Wyślij email do Domin10   
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

Rozmiar ekranu jest w Screen.Width i Screen.Height

Jeśli okno ma mieć rozmiar początkowy to można wpisać ten kod i powinno pomóc.

Dim fw As Long, fh As Long 'W tych zmiennych będą stare rozmiary okna

Private Sub Form_Resize()
If Me.WindowState = 1 Then Exit Sub 'Blokada minimalizacji
If fw = 0 And fh = 0 Then fw = Me.Width: fh = Me.Height: Exit Sub 'Początkowe ustawienie rozmiaró okna w tym wypadku należałoby zmienić na 1024 i 768 i usunąć Exit Sub
For i = 0 To Me.Count - 1 'Do wszystkich kontrlek

Me.Controls(i).Left = Me.Controls(i).Left / fw * Me.Width 'Przestosowanie rozmiaru i pozycji
Me.Controls(i).Width = Me.Controls(i).Width / fw * Me.Width 'Przy zbyt małych rozmiarach okna (np. przy minimalizacji, przy zmianie rozmiaru) obiekty mogą mieć nieodpowiedni rozmiar
Me.Controls(i).Top = Me.Controls(i).Top / fh * Me.Height
Me.Controls(i).Height = Me.Controls(i).Height / fh * Me.Height

Next

If fw <> Me.Width Or fh <> Me.Height Then fw = Me.Width: fh = Me.Height 'Zapamiętuje nowe Width i Height okna
End Sub

Jeśli musisz zmieniać rozmiar, napisz.


_____________________________________________
www.mob.abc.pl - moja strona o VB

19-08-2003 19:31
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
Domin10




Typ: neutral
Postów: 5
Zarejestrowany: Aug 2003

bisiek możesz troszke jaśnej.Po wpisaniu tego kodu nie ma poprawy po zmianie rozdzielczości na 800x600 okno programu nadal wychodzi poza ekran

23-08-2003 18:35
Pokaż profil Domin10  Wyślij email do Domin10   
napadlek
Ciapek



Typ: neutral
Postów: 117
Zarejestrowany: Feb 2003
OK

Twoj problem jest troche bezsensowny. Busiek nie zabardzo zakapowal o co chodzi (moze nie przeczytal calego posta). Chudy kuma cza-cze ale to nic nie da, bo o ile pamietam, to ten sposob zmienia rozdzielczosc calego winshita, pstrykajac ekranem, i go gaszac na chwile. Programy w roznych rozdzielczosciach zajmuja rozna objetasc ekranu, i tego nie da sie chyba zmienic, jedynie zmieniajac rozmiary kontrolek.
Sorry jesli nie mam racji.
/narazie


_____________________________________________
www.napadlek.prv.pl ruszyla od nowa zapraszam

23-08-2003 20:39
Pokaż profil napadlek  Wyślij email do napadlek   Odwiedź stronę napadlek       3392810
m-a-x



Typ: neutral
Postów: 366
Zarejestrowany: Jan 2003

Napadlek dobrze Ci mówi. Czytalem juz wczesniej tego posta i myslalem ze ktos odrazu ci odpowie. A jednak sie mylilem. Po dodaniu drugiej twojej odpowiedzi zupelnie sie juz pogubilem - nie wiem co ty chcesz dokladnie zrobic. Bo jezeli forma ma zmieniac swoja wielkosc gdy uzytkownik zmieni rozdzielczosc podczas dzialania programu to musisz dodac funkcje ktora sprawdzalaby co chwile rozmiar ekranu. Jezeli program z zalozenia ma sie uruchamiac tylko w okreslonej rozdzielczosci to musisz dodac funkcje ktora by ja automatycznie zmieniala. A zrobić to można za pomocą dwóch api: EnumDisplaySettings i ChangeDisplaySettings. Jeżeli nie wiesz jak sie ich używa ściągnij sobie Api-Guide. (rozdzielczosc nie jest zapisywana w zadnym pliku windowsowskim - tzn nie mozesz sobie np edytowac jakigos pliku i ja tam podmienic lol).

Na koniec chcialbym dodac ze zmiana rozmiarów formy a co za tym idzie kontrolek nie ma zabardzo sensu bo bys musial w niektorych przypadkach zmieniac rowniez czcionki jake sa w nich uzyte a to juz jest... ...(głupie) szczególnie przy dużej ilości kontrolek.


_____________________________________________

Problemem zazwyczaj nie jest brak osób znających odpowiedź a zadanie właściwego pytania!

24-08-2003 04:49
Pokaż profil m-a-x  Wyślij email do m-a-x   
Chudy
[TLHW]Wiktor



Typ: moderator
Postów: 574
Zarejestrowany: Aug 2002

Hmm... a może chociaż ten sampel coś pomoże:
http://www.a1vbcode.com/app.asp?ID=1986

nie zaszkodzi spróbować


_____________________________________________
Projekt "Thunder Cannons" nadchodzi...

24-08-2003 18:27
Pokaż profil Chudy  Wyślij email do Chudy   Odwiedź stronę Chudy       1220895
Domin10




Typ: neutral
Postów: 5
Zarejestrowany: Aug 2003

Program pisałem przy rozdzielczości 1024x768 i forma ma taką samą wielkość czyli zajmuje cały ekran.A jak zmienie rozdzielczość i ponownie uruchamie program to forma ta wystaje poza ekran bo rozmiar formy jest większy od rodzielczość. I w tym tkwi problem. Zmiana rozdzielczości podczas pracy programu nie wchodzi w gre. Może teraz troche jaśniej ?

[Post edytowany dnia 24-08-2003 21:48 przez Domin10]

24-08-2003 21:46
Pokaż profil Domin10  Wyślij email do Domin10   
m-a-x



Typ: neutral
Postów: 366
Zarejestrowany: Jan 2003

No to teraz z pomocą kodu (z małymi zmianami) który tu zapodał Bisiek i dzięki samplowi Chudego powinno ci sie udać to co chcesz zrobić. Bo chyba o to ci chodzi (wkońcu)?


_____________________________________________

Problemem zazwyczaj nie jest brak osób znających odpowiedź a zadanie właściwego pytania!

25-08-2003 03:12
Pokaż profil m-a-x  Wyślij email do m-a-x   
Domin10




Typ: neutral
Postów: 5
Zarejestrowany: Aug 2003

Będe próbował caś z tym zrobić wkońcy

25-08-2003 22:35
Pokaż profil Domin10  Wyślij email do Domin10   
Wszystkich odpowiedzi: 10 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1