Широчина екран

8 отговора 0 прегледа
#1

Широчина екран

направих си форма: Form1
Screen.Width е 1024 (1024/768 ми е настройката в момента)
максимизирам си формата и Form1.Width става 1032.
Отде неговата.... си намери още 8 пикселчета?!?! От пластмасата ли?

Благораря предварително за идеи и подсказки... И ако тва се слага от бозата, зали на друг комп няма да се 10 или 12 пиксела в повече? Как аджеба да отгатна де са написани (явно 2 по 4 - за двете страни на дисплея).. То е ясно че има артък , ама...

Отговор
в отговор на Ивaнчo #2

Re: Широчина екран

С коя версия на Delphi си? Пуснати ли са ти темите на Windows? Сложил ли си си XP Manifest в проекта? По време на стартиране на програмата ли максимизираш прозореца или проблема става, когато потребителя го максимизира по време на работа?

Linux isn't free, it's worthless.


Отговор
в отговор на Ивaнчo #3

Re: Широчина екран

Нормално, всички джамци са така. Размерът на рамката се връща от GetSystemMetrics с параметър SM_CXBORDER. Явно си на win7/vista, щото на XP бяха 2 пиксела.

[линк]
Отговор
в отговор на andrew_nikoloff #4

Re: Широчина екран

XP+Sp3, Делфи 7. Проблемът е когато се натисне бутонът за максимизиране. Опитах се да го "заобиколя" с :


if form1.Width > screen.Width then form1.Width:=screen.Width;

но form1.Width продължава да е 1032 а screen.Width 1024. Трасирам. Все тая. Този код го мушвам в OnResize

Отговор
в отговор на andrew_nikoloff #5

Re: Широчина екран

Забравих да спомена,че съм без манифеста.

Отговор
в отговор на Ивaнчo #6

Re: Широчина екран

А как точно ти пречи факта, че размера не е точно 1024?
Да не би да крашва програмата? Или некои контроли излизат разместени или не разположени където трябва?


Отговор
в отговор на Naki #7

Re: Широчина екран

Ами утре може и на половин екран да излиза всичко (знам ли?). просто искам да знам това от де иде?
1.От мен?
2.Делфито?
3.Бозата?
4.Компа (респ. монитора)?

Сорка! Просто начин на мислене , който ме е предпазвал от изненади през вековете!

Отговор
в отговор на Ивaнчo #8

Рамката

Ами той wqw ти го каза - това е нормалното поведение. Обърни внимание на дебелината на рамката на прозореца ти, когато той не е максимизиран. Тя е наистина дебела, особено на Vista и 7. Когато максимизираш прозореца, Windows го прави малко по-голям от екрана, за да изкара рамката извън него. Погледни, когато е максимизиран и ще видиш (т.е. няма да видиш) рамката. Но в този момент провери не Width, а ClientWidth на прозореца ти ще е колкото е разделителната способност. Идеята е, че когато максимизираш един прозорец, то значи той те интересува. В този случай рамката се маха, за да се максимизира полезното пространство.

Linux isn't free, it's worthless.


Отговор
в отговор на andrew_nikoloff #9

Re: Рамката

Аааа...Тва за Width и ClientWidth въобще не беше ми минало през ума! Благодаря ти много за идеята.

Темата може да се заключи от модератора вече.

Отговор