Два вопроса по Delphi
От: ArcaD  
Дата: 07.06.02 06:45
Оценка:
Здравствуйте, уважаемые!
Помогите, пожалуйста, разобраться в следующих вопросах.
Первый.
В дельфи, на форме куча компонент типа 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.

Как сделать, чтобы при возникновении исключительной ситуации не прерывалось приложение,
а выпольнялись только нужные мне действия?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.