|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Click на TStatusBar
Всем доброго...
Вопрос в следующем: на форме валяется TStatusBar, имеет несколько панелей, которые показывают всяческую информацию, в том числе состояние некоторых переменных (true or false), пользователь может изменять эти переменные с помощью горячих клавиш, но хотелось бы, чтобы их можно было изменять и кликом на соответствующую панель TStatusBar'a, так вот, как можно определить на какую именно панель в статус баре был произведен клик, т.е. индекс этой панели? Понять, что хочет заказчик - бесценно, ведь он платит MasterCard |
#2
|
|||
|
|||
Можно привязаться к координатам курсора в клиентской области объекта во время щелчка. Допустим, есть шесть панелей в StatusBar'е по 50 px шириной каждая.
Код:
procedure TForm1.StatusBar1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin case X of 0..50: ShowMessage('This is the first panel'); 51..100: ShowMessage('This is the second panel'); 101..150: ShowMessage('This is the third panel'); 151..200: ShowMessage('This is the fourth panel'); 201..250: ShowMessage('This is the fifth panel'); else ShowMessage('This is the fixth panel'); end; end; |
#3
|
||||
|
||||
да, спасибо большое, про такой подход даже не подумал, координаты - это весчЪ
однозначно плюсик в карму))) |