![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Есть RadioGroup1 в нем генерирую кнопки
Код:
Ocenka := TmpStr;
I := RadioGroup1.Items.Add(Ocenka);
RBtn := TRadioButton(RadioGroup1.Controls[i]);
SetWindowLong(RBtn.Handle,GWL_STYLE,GetWindowLong(RBtn.Handle,GWL_STYLE) or BS_MULTILINE);
RBtn.OnKeyDown:=RadioKeyDown; где RadioKeyDown Код:
procedure TMasterOfInspections.RadioKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key in [VK_RETURN, VK_SPACE]) then Button1.Click; if (Key in [VK_LEFT, VK_BACK]) then Button5.Click; end; На нажатие Enter ругается ошибкой памяти Access violation at address... |
|
#2
|
|||
|
|||
|
1. А у Button1 событие Onclick есть?
2. может лучше сразу вызывать Button1Click(Self)? |
|
#3
|
|||
|
|||
|
Да. Есть событие. Делал и так все одно - ошибка памяти выскакивает
|
|
#4
|
|||
|
|||
|
Цитата:
ЗЫ. Кстати, обычно такая ошибка происходит при обращении к несозданному объекту (одна из самых частых ошибок новичков). |
|
#5
|
|||
|
|||
|
в том то и прикол.
вот пытаюсь ее отловить. завернул событие Button1Click в try except showmessage('where are u'); end; но ничего не выдает. |
|
#6
|
||||
|
||||
|
Выложи побольше кода, так на кофейной гуще сложно гадать.
|
|
#7
|
|||
|
|||
|
Дело еще в том что я на кнопке Button1, которую я жму. Я обновляю список радиокнопок на котором у меня типа обрабатывается событие я его
Код:
while RadioGroup1.Items.Count > 0 do
RadioGroup1.Items.Delete(0);Код:
Ocenka := TmpStr;
I := RadioGroup1.Items.Add(Ocenka);
RBtn := TRadioButton(RadioGroup1.Controls[i]);
SetWindowLong(RBtn.Handle,GWL_STYLE,GetWindowLong(RBtn.Handle,GWL_STYLE) or BS_MULTILINE);
RBtn.OnKeyDown:=RadioKeyDown; |
|
#8
|
||||
|
||||
|
Ошибка в 7-й строчке.
|
|
#9
|
|||
|
|||
|
что за 7-ая строчка? Конкретизируйте пожалуйста.
Cейчас пытался обмануть. Cделал на FormKeyDown Код:
procedure TForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_ESCAPE) then Close;
if (Key = VK_RETURN) and Assigned(Screen.ActiveControl)
and (Screen.ActiveControl is TRadioButton) then Button1.Click;
end; |
|
#10
|
||||
|
||||
|
Ошибка на 7-й строке, сразу после закомментированной строчки.
|