![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Необходимо, чтоб процедура выполнялась только при нажатой клавише Shift. Как это реализовать?
|
|
#2
|
|||
|
|||
|
Код:
//в начале процедуры if GetAsyncKeyState(VK_SHIFT) = 0 then Exit; //или обратное условие if GetAsyncKeyState(VK_SHIFT) = -32767 then begin ... //операторы, выполняющиеся при нажатой кл. Shift end; |
|
#3
|
|||
|
|||
|
Пасибо. только теперь возникает следующая проблема... у меня по нажатию мыши должны выполняться несколько однотипных процедур, а выполняеться только первая из них. как сделать чтоб они выполнялись все?
|
|
#4
|
||||
|
||||
|
Код обработчика нажатия мыши выложите.
|
|
#5
|
|||
|
|||
|
Чтобы какая-либо процедура выполнилась, необходимо ее вызвать.
|
|
#6
|
|||
|
|||
|
вот процедура:
Код:
procedure nazg(Sender: TObject);
var
APanel : TPanel;
begin
if GetAsyncKeyState(VK_SHIFT) = -32767 then
If Sender Is TPanel Then
Begin
APanel := Sender As TPanel;
if APanel.Color=clBtnFace then APanel.Color := clYellow else APanel.Color :=clBtnFace;
if APanel.Bevelouter =bvRaised then APanel.Bevelouter:=bvLowered else APanel.Bevelouter:=bvRaised;
End;
end;вот обработчик клика по кнопке: Код:
procedure TForm3.Panel1Click(Sender: TObject); begin nazg(Panel1); nazg(Panel93); nazg(Panel95); nazg(Panel99); nazg(Panel98); nazg(Panel92); nazg(Panel77); end; по идее нажатие кнопки должно включать еще ряд других.... кнопки на основе компонента TPanel. |
|
#7
|
||||
|
||||
|
А если так?:
Код:
procedure nazg(Sender: TObject);
var
APanel : TPanel;
begin
If Sender Is TPanel
Then Begin
APanel := Sender As TPanel;
if APanel.Color=clBtnFace
then APanel.Color := clYellow else APanel.Color :=clBtnFace;
if APanel.Bevelouter =bvRaised
then APanel.Bevelouter:=bvLowered
else APanel.Bevelouter:=bvRaised;
End;
end;
procedure TForm3.Panel1Click(Sender: TObject);
begin
if GetAsyncKeyState(VK_SHIFT) = -32767
then begin
nazg(Panel1);
nazg(Panel93);
nazg(Panel95);
nazg(Panel99);
nazg(Panel98);
nazg(Panel92);
nazg(Panel77);
end;
end; |
|
#8
|
|||
|
|||
|
там порядка 100 кнопок-панелей, и под них процедуры обработки уже написаны, так что придеться код для каждой кнопки добавлять... проще через процедуру, но все равно спасибо за вариант
![]() |
|
#9
|
|||
|
|||
|
Цитата:
|
|
#10
|
|||
|
|||
|
в будущем, с превиликим удовольствием.... но пока чо я хотел бы решить описанную в теме задачу...
|