|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Проблема с Shift-ом
Необходимо, чтоб процедура выполнялась только при нажатой клавише 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
|
|||
|
|||
в будущем, с превиликим удовольствием.... но пока чо я хотел бы решить описанную в теме задачу...
кто знает общую теорию тот БОГ |