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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2007, 12:17   #1
DmT
Пользователь
 
Регистрация: 06.10.2007
Сообщений: 32
По умолчанию Своя панелька в Панели задач WinXP(на Delphi)

Помогите найти сайт где можно посмотреть как написать приложение-панель для панели задачь WinXP.(Ну типа как MediaPlayer сворачивается, или панелька поска от Google, или как языковая панель)
Или просто напишите как это сделать.
*Только чтобы работало коректно, т.е. чтобы можно было перитаскивать влево-вправо вверх-вниз по панели задач.
DmT вне форума Ответить с цитированием
Старый 16.11.2007, 13:08   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Поиск по форуму, ключевое слово TRAY или ТРЭЙ.
mihali4 вне форума Ответить с цитированием
Старый 16.11.2007, 13:21   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я чесно не помню ссылку, на статейку как писать свои рабочие столы, но если тебе хочется чтоб твоя форма могла прилипать к краям наподобие строки задач, то мона воспользоваться легеньким примерчиком:

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
const
  Sc_dragmove = $F012;
begin            Align:=alnone;
  ReleaseCapture;
  Perform(WM_SYSCOMMAND, Sc_dragmove, 0);
  if Mouse.CursorPos.X<50 then  begin Align:=alLeft; Width:=50; end;
  if Mouse.CursorPos.X>(Screen.Width-50) then  begin Align:=alRight; Width:=50; end;
  if Mouse.CursorPos.Y<50 then  begin Align:=alTop; Height:=50; end;
  if Mouse.CursorPos.Y>(Screen.Height-50) then  begin Align:=alBottom; Height:=50; end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 // BorderStyle:=bsNone; <- Это если тебе заголовок не нужен
 Align:=alBottom;
end;

end.
Теперь тягать можеш свою форму за ее тело и она будет прилипать к краям если ты отпустиш ее в определенной от них близости
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.11.2007, 13:36   #4
DmT
Пользователь
 
Регистрация: 06.10.2007
Сообщений: 32
По умолчанию

Да нет же.
Мне не нужны никакие раб.столы или программа прилипающая к краям экрана.
mihali4, и в какую тему мне там пойти?
Вот Картинка
http://www.programmersforum.ru/attac...1&d=1195209288
Мне надо разместить свои компоненты точно также!
Изображения
Тип файла: jpg Панель.jpg (20.4 Кб, 182 просмотров)
DmT вне форума Ответить с цитированием
Старый 16.11.2007, 13:59   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
mihali4, и в какую тему мне там пойти?
Рекомендую просмотреть все, излишне не будет...
mihali4 вне форума Ответить с цитированием
Старый 16.11.2007, 14:20   #6
DmT
Пользователь
 
Регистрация: 06.10.2007
Сообщений: 32
По умолчанию

Те темы вообще не в тему...
всмысле не подходят под мою просьбу.
DmT вне форума Ответить с цитированием
Старый 16.11.2007, 14:36   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Уточняем. Нужно, чтобы приложение было свернуто рядом часами, так же, как и аська, и сетевые значки (на приведенном рисунке)?
Тогда я уже ответил.
mihali4 вне форума Ответить с цитированием
Старый 16.11.2007, 14:43   #8
DmT
Пользователь
 
Регистрация: 06.10.2007
Сообщений: 32
По умолчанию

нет. там между языковой панелью(написанно "RU") и треем(отделен небольшим круглишочком со стрелочкой влево) есть панель от стороннего разработчика(читаем: "не Microsoft") Google. На этой панельке есть такие компаненты: поле ввода(как TEdit) и 4 кнопки.
DmT вне форума Ответить с цитированием
Старый 16.11.2007, 15:41   #9
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

ну как-то так:

1. найти окно Shell_TrayWnd (вся панель задач) -> ReBarWindow32 (всё, что между пуском и треем) -> ToolbarWindow32 с заголовком "Выполнение приложений"
2. Уменьшить его ширину и в получившееся справа место вклеить своё окно, указав хэндл ReBarWindow32 в качестве родителя.

Только неизвестно что получится, если пользователь попытается создать ещё одну панель стандартно (пкм-панели инструментов-создать) и будет ли всё это вообще работать
Может в апи есть какое-то готовое решение?

----

Ыыы, так и знал, COM и интерфейсы. Великий Мануал рулит
http://msdn2.microsoft.com/en-us/library/bb776819.aspx
пыщь

Последний раз редактировалось JTG; 16.11.2007 в 16:14.
JTG вне форума Ответить с цитированием
Старый 16.11.2007, 19:54   #10
DmT
Пользователь
 
Регистрация: 06.10.2007
Сообщений: 32
По умолчанию

ниа(((
плохой вариант(((
Я то хотел чтобы она(моя програмка-панелька) могла своботдно перемещатся пользователем.
DmT вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание кнопки в панели задач Trim Общие вопросы Delphi 14 01.08.2010 16:37
Скрытие окна из панели задач xTANATOSx Win Api 2 26.10.2007 23:23
Скрыть с панели задач форму! Oleg Romanchuk Помощь студентам 2 18.08.2007 08:11