Здравствуйте, уважаемые!
Помогите, пожалуйста, разобраться в следующих вопросах.
Первый.
В дельфи, на форме куча компонент типа TEdit, TComboBox И TLabel они представляют различные поля одной записи,
кроме этого на форме есть компонент TTreeView, который тоже отображает запись.
После изменения значения одного из TEdit.Text нужно перерисовать все компоненты кроме TreeView —
его перерисовка нужна только когда изменится структура записи, а перерисовываясь каждый раз он неприятно моргает.
Пробовал в обработчике TEdit.OnChange задавать TRect включающий только нужные компоненты
и писать
InvalidateRect(Form1.Handle,MyRect,true);
Form1.Update;
все равно перерисовывается вся форма.
Как запретить перерисовку компонента TreeView если она мне не нужна?
И второй вопрос.
В дельфи, в компоненте TEdit, требуется вводить целые числа.
Пишу:
procedure TForm1.Edit1Change(Sender: TObject);
begin
StrToInt(Edit1.Text);
end;
procedure TForm1.MyExcept(Sender: TObject; E: Exception);
begin
if E is EConvertError then
begin
Edit1.Text:='';
MessageDlg('Неверный символ', mtInformation, [mbOk], 0)
end
else raise E;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnException:=MyExcept;
end;
при вводе в Edit1 буквы приложение прерывает выполнение и сообщает об ошибке,
только после этого вызывается обработчик MyExcept.
Как сделать, чтобы при возникновении исключительной ситуации не прерывалось приложение,
а выпольнялись только нужные мне действия?