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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2010, 15:47   #11
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию

Код:
procedure TForm1.CoolTrayIcon1MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
var
  MyMouse: TMouse;
  r : TRect;
begin
SystemParametersInfo(SPI_GETWORKAREA, 0, @r, 0);
form2.Left:=MyMouse.CursorPos.x-50;
form2.Top:=r.Bottom-form2.height;
form2.show;
end;
вот собственно и решение замутил) мб кому и пригодится)

насчет 2 вопроса, определять показана ли в данный момент форма так?
Код:
if form2.onShow = true
then begin
	form2.show;
end;
Moonquake
phphel вне форума Ответить с цитированием
Старый 31.07.2010, 15:52   #12
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию

DIgorevich, ничего это не даст..я про ReleaseCapture;
Moonquake

Последний раз редактировалось phphel; 31.07.2010 в 15:54.
phphel вне форума Ответить с цитированием
Старый 31.07.2010, 15:56   #13
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Ты спрашивал про получение высоты TaskBar'a:

Код:
 var
   tabd: TAppBarData;
begin
   FillChar(tabd, SizeOf(TAppBarData), 0);
   tabd.cbSize := SizeOf(TAppBarData);
   if SHAppBarMessage(ABM_GETTASKBARPOS, Tabd) = 0 then Exit;
   showmessage(inttostr(Tabd.rc.bottom-Tabd.rc.top));
end;
В uses добавь ShellApi
Никогда не знаешь, где тебе повезет... (Фрай)

Последний раз редактировалось DIgorevich; 31.07.2010 в 15:59.
DIgorevich вне форума Ответить с цитированием
Старый 31.07.2010, 15:59   #14
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию

DIgorevich, уже не актуально, я спрашивал про так как проверять отображается ли вторая форма или нет)
Moonquake
phphel вне форума Ответить с цитированием
Старый 31.07.2010, 16:02   #15
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Цитата:
Сообщение от phphel Посмотреть сообщение
DIgorevich, уже не актуально, я спрашивал про так как проверять отображается ли вторая форма или нет)
Что вы говорите? а я тут такого не заметил:
Цитата:
1.Как точно определить где показывать форму смены громкости?
Аналогично coolTrayIcon1.PopupAtCursor.

2.При появлении формы громкости, если навести мышку на регулятор и попробовать
его сместить, то это делается как бы с задержкой, а иногда вообще со второго раза.

3.Ну и собственно. если кто писал уже подобное)
подскажите как сделать что бы скролл бар оставлял за собой полосу)
как в аимпе.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 31.07.2010, 16:07   #16
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию

to DIgorevich
Цитата:
Сообщение от DIgorevich Посмотреть сообщение
Естественно, т.к. у тебя при смещении регулятора каждый раз вызывается событие CoolTrayIcon1MouseMove
а вот тут верно, что-то я это не учел...
я так понимаю надо типа так..

Код:
if form2.onShow = true
then begin
	form2.show;
end;
Вот Вам цитата, если уж в такой тон перешла беседа..
И вообще, зачем мне решение, если я буквально пару минут назад уже написал свое?
Естественно, меня теперь волнует другой вопрос, который я так же задавал. (см. 1 страницу)
Moonquake

Последний раз редактировалось phphel; 31.07.2010 в 16:09.
phphel вне форума Ответить с цитированием
Старый 31.07.2010, 16:10   #17
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Цитата:
Сообщение от phphel Посмотреть сообщение
Вот Вам цитата, если уж в такой тон перешла беседа..
Не обижайтесь, у меня чувство юмора своеобразное...
А по поводу вопроса... Для чего, если не секрет, проверять открытие формы?
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 31.07.2010, 16:14   #18
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию

Цитата:
Сообщение от DIgorevich Посмотреть сообщение
Не обижайтесь, у меня чувство юмора своеобразное...
А по поводу вопроса... Для чего, если не секрет, проверять открытие формы?
Не обижаюсь Я вообще рад, что хоть кто-то откликнулся)

Проверять нужно для того, что я думаю что это поможет мне с этим

2.При появлении формы громкости, если навести мышку на регулятор и попробовать
его сместить, то это делается как бы с задержкой, а иногда вообще со второго раза.

Если же нет, то готов выслушать Правильное решение проблемы.
Moonquake
phphel вне форума Ответить с цитированием
Старый 31.07.2010, 16:24   #19
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

я сделал это так:
Код:
procedure TForm2.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  { if GetCapture = 0 then
   SetCapture(Form2.Handle);
   if PtInRect(Rect(Form2.Left,Form2.Top,Form2.Left + Form2.Width,
   Form2.Top + Form2.Height),ClientToScreen(Point(x, y)))
   then else form2.Close;} вообще ВСЁ убрал, чтобы не вызывалось каждый раз, когда мышь двигается на форме...
end;

procedure TForm2.FormDeactivate(Sender: TObject);
begin
   ReleaseCapture;
   Form2.Close;
end;

procedure TForm2.TrackBar1Change(Sender: TObject);
begin
   form1.TrackBar1.Position:=TrackBar1.Position;
end;

procedure TForm2.FormActivate(Sender: TObject);
begin
   TrackBar1.Position:=form1.TrackBar1.Position;
end;
Таким образом ползунок двигается адекватно.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 31.07.2010, 16:29   #20
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию

DIgorevich, ну да, теперь двигается он нормально)
но если закомментировать
Код:
 { if GetCapture = 0 then
   SetCapture(Form2.Handle);
   if PtInRect(Rect(Form2.Left,Form2.Top,Form2.Left + Form2.Width,
   Form2.Top + Form2.Height),ClientToScreen(Point(x, y)))
   then else form2.Close;}
то форма2 не будет закрываться если отвести от неё курсор мыши.

так что нужно либо мой вариант дорабатывать, либо Ваш )
Moonquake
phphel вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Показать форму свернутую на панели задач Shouldercannon Общие вопросы Delphi 2 29.06.2010 18:24
звук при наведении beygul Помощь студентам 16 13.01.2010 22:05
builder. Как показать вторую форму? Как подключить другой юнит? TwiX C++ Builder 2 21.12.2009 21:29
Как показать форму в Visual C++? Vitek-pm Visual C++ 2 21.02.2009 22:19
Как показать одну форму из другой в С++ по нажатию кнопки anton.metal Общие вопросы .NET 1 21.11.2008 19:38