A survey...

12 отговора 237 прегледа
#1

A survey...

Interesno mi e vsichki li ot vas si dyrjat rechnicite i Trillian/ICQ/Messenger-a v dolniqt lqv ygyl na ekrana?
Ako ne kyde?

Za WiseGuy:
Tyi kato si dyrja moq AEDictionary dolu v lqvo nqkoi ot formite koito sa centrirani na owner izlizat izvyn ekrana. Tyi kato pisha programa koqto veroqtno shte stoi taka i napisah tazi procedure da pokazva formite vinagi izcqlo na ekrana. Ako iskash q izpolzvai.

OnShow na formata pishesh:

FormOnScreen(MainForm, Self);

procedure FormOnScreen(MainF, F: TForm);
var
R: TRect;
ALeft, ATop: Integer;
CenterForm: TForm;
begin
SystemParametersInfo(SPI_GETWORKAREA, 0, @R, 0);

ALeft := (MainF.Width - F.Width) div 2 + MainF.Left;
ATop := (MainF.Height - F.Height) div 2 + MainF.Top;

if ALeft + F.Width > R.Right then
ALeft := R.Right - F.Width;
if ATop + F.Height > R.Bottom then
ATop := R.Bottom - F.Height;

if F.Left < 0 then
ALeft := 0;
if F.Top < 0 then
ATop := 0;

F.SetBounds(ALeft, ATop, F.Width, F.Height);
end;

Go on, prove me wrong. Destroy the fabric of the universe. See if I care.
Отговор
в отговор на Rincewind #2

Не е достатъчно...

хубаво е програмата да се тества с multi monitor support - трябва да ти кажа, че повечето програми които се справят добре с центрирането и разполагането на формите така се дънят (повечето заради такива модификации). Така, че хора мислете за тези от нас които имат по повече от един монитор включен едновременно.
Шегувам се, Delphi предоставя всичко което му е необходимо на човек за multi monitor - само не трябва да се подминават property-тата за това или пък да се пишат функции които работят само за 1 монитор. В случая бих препоръчал използването на прост компонент за Form position save, като може да се добави проверка дали формата не излиза нацяло от екрана.

---
Е т'ва е живот!
Отговор
в отговор на PhantomAS #3

Re: Не е достатъчно...

Тествал съм я... Бъзикам се, но съм го имам предвид, знам за този 'проблем' :)
По принцип този код не центрира нищо. Просто се грижи формата да се покаже изцяло на екрана (или workarea-та всъщност). Тоест ти си set-ваш позиция OwnerCenter и си е центрирана ПРЕДИ да стигне то този код.

А иначе другият въпрос. И вие ли си държите там речниците и Instant Message-инзите?

Go on, prove me wrong. Destroy the fabric of the universe. See if I care.
Отговор
в отговор на Rincewind #4

Re: Не е достатъчно...

----
А иначе другият въпрос. И вие ли си държите там речниците и Instant Message-инзите?
----
absolutno ne az gi darja dolo w dqsno i izobshto w dqsno. imam si edna malka sladka programka koqto moje da "enforswa" always-on-top za przorcite i taka si reshawam problemite s ogranichenoto mqsto na 1024x768

------------------------------
I got a COMPILER, and I'm not afraid to use it!
Отговор
в отговор на SDR #5

Re: Не е достатъчно...

Uff, imah predvid drugoto lqvo :)
I az si gi dyrja dolu v dqsno :)

Go on, prove me wrong. Destroy the fabric of the universe. See if I care.
Отговор
в отговор на Rincewind #6

Re: Не е достатъчно...

Относно ICQ и другите му производни - си ги държа auto hide и по възможност като band от дясно. Гледам да нямам нищо по екрана.
Не мога да разбера защо ми е речник постоянно на екрана - най добре да си стои в tray -а ако толкова често ми трябва нещо. Иначе си го слагам където дойде.

---
Е т'ва е живот!
Отговор
в отговор на PhantomAS #7

Re: Не е достатъчно...

Imam predvid KOGATO e vyrhu ekrana.
I az ne dyrja nishto po ekrana de...

Go on, prove me wrong. Destroy the fabric of the universe. See if I care.
Отговор
в отговор на Rincewind #8

Re: Не е достатъчно...

Ами когато е върху екрана - гледам подобни вторични неща (защото речника определено го ползвам с нещо друго - Word, IE ...) да е на втория монитор - няма значение къде - същото важи за кое да е приложение - чак ако започна да го ползвам повече от 1 час на ден тогава започвам да мисля дали ми е удобно и ергономично и за неговото положение.

---
Е т'ва е живот!
Отговор
в отговор на Rincewind #9

Въпрос

[линк]

Колкото до излизането... тъй като вече си имам кой да обработва прикачането, значи би трябвало да си сложа и ограничаването вътре. Тук идва въпроса дали последното е нужно.

Как мислите, добре ли е да се прави прозореца да не излиза от екрана?

Това поведение ми се струва, че не е прието, поне в програмирането за Windows (за други ОС незнам).

ПС По другия въпрос, държа си нещата на различни места. Ако ще стой по-дълго време като лента в дясно. Иначе обикновенно в центъра, за да ми е по достъпно.

by Waz Gaa
[email protected]
Отговор
в отговор на Waz Gaa #10

Re: Въпрос

сега се сещам че на Amiga PC-тата OS-а не позволяваше излизането на прозорец извън екрана... мисля че това е по-скоро неудобно отколкото полезно..

Отговор
в отговор на NiL^ #11

Re: Въпрос

Даааааа много гадно на тая разд способност (320 на 240 май) да не може да си изкараш прзорците поне малко навън

Отговор
в отговор на Waz Gaa #12

Re: Въпрос

Waz Gaa,
Май никой не е погледнал кода който постнах :)
Това не е код който обработва WM_MOVING или нещо друго.

Той е предназначен за всичките ти диалогови прозорци които се показват от главната форма. Значи аз си държа AEDict-a и Trillian-а долу в дясно. Trillian-a си показва диалоговите прозорци в центъра на екрана. В AEDict-а те са owner centered. Това означава, че тъй като ми е долу в дясно и е малка главната форма, доста от диалоговите прозорци се показват (ПЪРВОНАЧАЛНО) извън екрана.
Тази процедура която съм постнал се вика на OnShow на всяка форма и се грижи за това формата да не се ПОКАЖЕ ПЪРВОНАЧАЛНО извън екрана. После можеш да я местиш където си искаш.
За главен прозорец, Waz, е добре да имаш поне snap, но за диалоговите е хубаво да call-ваш тази процедура.

Go on, prove me wrong. Destroy the fabric of the universe. See if I care.
Отговор
в отговор на Rincewind #13

Re: Въпрос

Извинявай, явно съм изпуснал целта на пост-а ти. Наистина е добре (може би задължително) да има едно такова нагласяне на позицията при показване на диалогов прозорец.

Ще видя пак твоя код. Предполагам ще го пипна малко (за да го възприема) преди да го вкарам в употреба. Ако измисля някакво (сериозно) подобрение ще пиша отново...

by Waz Gaa
[email protected]
Отговор