Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2008, 09:50   #1
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
Радость Программа над пуском

, привет всем. У меня вопрос. Как сделать порграмму, которая всё время находилась бы над панелью пуск. Я расположил свою программу в правом нижнем углу.
Width := 100;
Height := width;
Top := Screen.Height -150;
Left := Screen.Width -100;

Но веть все знают, что панель с кнопкой пуск, можно изменять в размерах и положениях, тогда поргрмма просо останется на месте. Подскажите, пожалуйста.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 06.07.2008, 10:27   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Нужно брать размеры не всего экрана, а его рабочей области:
Screen.WorkAreaHeight;
Screen.WorkAreaWidth;
Screen.WorkAreaLeft;
Screen.WorkAreaTop;
И не забывайте о возможности "примагничивания" окна к краям рабочей области экрана:
SnapBuffer;
ScreenSnap;

Ну, а это высота панели задач:
Код:
var
  h: integer;
  R: TRect;
begin
 GetWindowRect(FindWindow('Shell_TrayWnd',nil),R);
 h:=R.Bottom-R.Top;

Последний раз редактировалось _Dmitry; 06.07.2008 в 10:30.
_Dmitry вне форума Ответить с цитированием
Старый 06.07.2008, 10:56   #3
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Узнаем дескриптор панели по имени класса, потом с помощью GetWindowRect заносим координаты в структуру Rect
Код:
procedure TForm1.DetectTaskBar;
var hnd: HWND;
    Rect: TRect;

begin
   // "ловим" панель
  hnd := FindWindow('Shell_TrayWnd', nil);
   // заносим координаты рамки окна (панели) в структуру
  GetWindowRect(hnd, rect);
   // дальше считывай из структуры Rect нужные тебе координаты
   // например так
  caption:= inttostr(Rect.Right);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
    DetectTaskBar;
end;
Gorychev вне форума Ответить с цитированием
Старый 06.07.2008, 10:59   #4
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Остаётся придумать, что делать, если таскбар будет сверху/слева/справа....
B_N вне форума Ответить с цитированием
Старый 06.07.2008, 11:10   #5
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Спасибо за помощь!
Манжосов Денис :) вне форума Ответить с цитированием
Старый 06.07.2008, 15:21   #6
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

У меня кое- что не получается. Не мону никак понять.
procedure TMainForm.FormCreate(Sender: TObject);
var
R : Trect;
Size : integer;
begin
GetWindowRect(FindWindow('Shell_Tra yWnd',nil), R);
Size := R.Bottom - R.Top;

sec := 0;

AutoSize := true;
Left := Screen.WorkAreaWidth - 115;
Top := Screen.WorkAreaHeight - Size;
ScreenSnap := true;

Ошибку понимаю, но не могу догадаться как же её исправить
Манжосов Денис :) вне форума Ответить с цитированием
Старый 06.07.2008, 16:01   #7
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

А какая ошибка?
ЧТо такое Size, Top, Left?
Если это относиться к обьекту, то надо это указать.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 06.07.2008, 16:01   #8
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Код:
procedure TMainForm.FormCreate(Sender: TObject);
begin
  AutoSize:=true;
  Left:=Screen.WorkAreaWidth-Width;
  Top:=Screen.WorkAreaHeight-Height;
  ScreenSnap:=true;
end;
_Dmitry вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа на С++ Raptor Помощь студентам 2 28.04.2008 09:27
программа (не код!) simple Помощь студентам 8 14.01.2008 23:36
Программа ben95 Общие вопросы Delphi 1 04.01.2008 20:52