![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
Всем доброго...
Вопрос в следующем: на форме валяется TStatusBar, имеет несколько панелей, которые показывают всяческую информацию, в том числе состояние некоторых переменных (true or false), пользователь может изменять эти переменные с помощью горячих клавиш, но хотелось бы, чтобы их можно было изменять и кликом на соответствующую панель TStatusBar'a, так вот, как можно определить на какую именно панель в статус баре был произведен клик, т.е. индекс этой панели? |
|
#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
|
||||
|
||||
|
да, спасибо большое, про такой подход даже не подумал, координаты - это весчЪ
однозначно плюсик в карму))) |