Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];

Вниз

Высота Task Bar   Найти похожие ветки 

 
Dezmond   (2005-05-29 22:40) [0]

Привет всем!
Возникла необходимость знать высоту Task Bar"a.
Как это сделать? Возникла идея исользовать FindWindow применительно к окну с классом Shell_TrayWnd (в ХР это и есть таск бар), во всех ли версиях Windows класс таскбара называется так?

Спасибо!


 
Sergey Masloff   (2005-05-29 22:45) [1]

Не подойдет

Screen.Height - Screen.WorkAreaHeight

Вообще WorkAreaHeight это размер рабочей области за вычетом таскбара может это тебе нужно?


 
Dezmond   (2005-05-29 22:47) [2]

Именно это!
Спасибо!!!


 
Anatoly Podgoretsky ©   (2005-05-29 23:05) [3]

Sergey Masloff   (29.05.05 22:45) [1]
Не войдет если рассположен слева или справа


 
Sergey Masloff   (2005-05-29 23:12) [4]

Anatoly Podgoretsky ©   (29.05.05 23:05) [3]
Да я просто телепат понял что человеку нужно. Просто вся доступная поверхность а тут WorkAreaHeight в самый раз ;-)


 
Dezmond   (2005-05-29 23:33) [5]

-> Anatoly Podgoretsky ©   (29.05.05 23:05) [3]

Всё правильно, мне это и нужно было. Это для того, чтобы сделать ICQ-like окошко (как версии 5) для отображения новых сообщений. Оно должно появляться в нижнем-правом углу "над часиками". Если таскбар будет справа (слева) значит окошка будет "вылезать" прямо из-за границы экрана. Конечно надо ещё учитывать WorkAreaWidth на случай если тасбар будет справа.

Ещё раз спасибо. Вроде простая вещь, а застопорился )


 
Andy BitOff ©   (2005-05-30 01:56) [6]

Вот так правильнее будет, имхо =)


var
 ABData: TAppBarData;
 bAlwaysOnTop: Boolean; {Поверх окон}
 bAutoHide   : boolean; {Авт. убирать с экрана}
 ClRect      : TRect;   {Клиентские области}
 Rect        : TRect;
 Edge        : UInt;    {Местоположение TaskBar}
begin
 //определение положения TaskBar"a и его размер
 ABData.hWnd   := FindWindow("Shell_TrayWnd", nil);
 ABData.cbSize := sizeof(AppBarData);
 bAlwaysOnTop      := strToBool(IntToStr((SHAppBarMessage(ABM_GETSTATE, ABData) and  ABS_ALWAYSONTOP)));
 bAutoHide         := strToBool(IntToStr((SHAppBarMessage(ABM_GETSTATE, ABData) and  ABS_AUTOHIDE)));
 windows.GetClientRect(ABData.hWnd, ClRect);
 GetWindowRect(ABData.hwnd, rect);
 if (Rect.top >  0) Then Edge := ABE_BOTTOM else if (Rect.Bottom <  Screen.Height) Then Edge := ABE_TOP
   else if Rect.Right <  Screen.Width Then Edge := ABE_LEFT else Edge := ABE_RIGHT;
 //установка положения и изменение размеров формы на весь экран по высоте
 a:=0;
 if Edge=ABE_TOP then a:=clRect.Bottom;
 MainForm.Top:=a;
 a:=Screen.Height-clRect.Bottom-MainForm.Height;
 MainForm.Height:=MainForm.Height+a;
end;


 
KilkennyCat ©   (2005-05-30 02:19) [7]

то же самое, но с некоторыми дополнениями
http://www.codeproject.com/shell/trayposition.asp



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.037 c
6-1111926594
X-Disa
2005-03-27 16:29
2005.06.14
TIdHttp - подвисает


8-1109668309
Ivolg
2005-03-01 12:11
2005.06.14
Инфо о видео файле


4-1114248673
Max-F
2005-04-23 13:31
2005.06.14
Определение пути текущей папки


1-1117346604
Aldor
2005-05-29 10:03
2005.06.14
Чтение свойства - всем, запись - только потомкам


14-1117082252
Digitman
2005-05-26 08:37
2005.06.14
Наземные войска США переходят на Linux..





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский