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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2009, 19:17   #1
mustang007
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 72
Сообщение SpeedButton

Подскажите пожалуйста как зделать: вот нажимаю я на speedbutton и а рядом с ним появляется окошко.
mustang007 вне форума Ответить с цитированием
Старый 14.05.2009, 19:22   #2
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Окошко - это форма другая?
Если да, то вот код:
Код:
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
 p: TPoint;
begin
 p := SpeedButton1.ClientToScreen(Point(0, 0));   //Получаем координаты кнопки относительно экрана
 Form2.Left := p.X;
 Form2.Top := p.Y + SpeedButton1.Height;
 Form2.Show;
end;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 14.05.2009, 19:29   #3
mustang007
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 72
По умолчанию

нет не форма. когда я нажимаю на speedbutton должно появится окошко примерно как в mainmenu
mustang007 вне форума Ответить с цитированием
Старый 14.05.2009, 19:32   #4
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Это еще легче
Кинь на форму TPopupMenu(при двойном нажатии открывается редактор менюшек)
Код:
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
 PopupMenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);
end;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 14.05.2009, 19:42   #5
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

так окошко или меню ???
если окошко - тебе уже ответил Neeter,
если меню то можно (в добавок к варианту от Neeter) так:
Код:
// функция выпадания меню возле чего угодно
procedure Popup(Sender: TWinControl; pm: TPopupMenu);
var
  xPoint: TPoint;
begin
  GetParentForm(TWinControl(Sender)).SendCancelMode(nil);
  pm.PopupComponent := TWinControl(Sender);
  xPoint := Point(-1, TWinControl(Sender).Height);
  with TWinControl(Sender).ClientToScreen(xPoint) do pm.Popup(x, y);
end;
Использование :
Код:
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  Popup(TWincontrol(Sender), PopupMenu1);
end;
Соответственно PopupMenu1 заранее создай ...
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 14.05.2009, 19:44   #6
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Можно еще так:
Код:
procedure TForm1.SpeedButton3Click(Sender: TObject);
var
 p: TPoint;
begin
 GetCursorPos(p);
 PopupMenu1.Popup(p.X, p.Y);
end;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PopUpMenu из SpeedButton Altera Общие вопросы Delphi 4 15.07.2008 04:14
SpeedButton.Glyph mutabor Компоненты Delphi 6 03.05.2008 16:51
Вопрос SpeedButton-а...??? Altera Компоненты Delphi 3 25.02.2008 00:15
Вопрос о SpeedButton Micha Компоненты Delphi 1 16.09.2007 15:10
ОЧистить SpeedButton ZhekON Компоненты Delphi 4 19.06.2007 12:28