Читать «Виртуальная библиотека Delphi» онлайн - страница 102
Unknown
20. Как использовать case, чтобы определить, какой объект вызвал процедуру?
Используйте свойство
case (Sender as TComponent).Tag of
Button1ID: SomeProcedure;
Button2ID: AnotherProcedure;
end;
Таким образом вы можете обрабатывать события как от однотипных компонент, так и от компонент разного типа.
21. Как обрабатывать события от множества однотипных компонентов.
На моей форме находится примерно 10 кнопок. Я хочу обрабатывать нажатие на любую из них одним событием, но как их отличить внутри обработчика события?
Для этого базовый класс VCL
procedure MyForm.Button1Click(Sender: TObject);
begin
case (Sender as TComponent).Tag of
1:
2:
3:
end;
end;
22. Использование TPanel в качестве "индикатора".
Я пытаюсь использовать
После присвоения
23. Включение и выключение подсказок (Hints) для всех элементов на форме.
Если ваша форма содержит панель подсказки в нижней части формы, то вы можете определить подменю для этой панели, и выставлять
Например, в
ShowHint := not (Sender as TMenuItem).Checked;
В результате на локальном меню панели будет видно, включены подсказки для всех элементов или нет.
24. Как в меню поместить bitmap?
Можно поступить таким образом:
var
Bmp1: TBitmap;
begin
Bmp1 := TBitmap.Create;
Bmp1.LoadFromFile('C:\WHERE\B1.BMP');
SetMenuItemBitmaps(MenuItemTest.Handle, 0, MF_BYPOSITION, Bmp1.Handle, Bmp1.Handle);
end;
Параметры:
• 0,1 ... — позиция пункта меню, в который надо вставить BMP
• первый
• второй
Код можно вставить в обработчик