1. Это значит, что у тебя, скорее всего, после сообщения программы пытается продолжить вычисления. Можно сделать так:
Код:
D := b*b - 4*a*c; // кажется, так
if (D < 0)
Then ShowMessage('Корней нет')
Else
Begin
X1 := (-b + sqrt(D))/(2*a);
X2 := (-b - sqrt(D))/(2*a);
ShowMessage('X1 = ' + FloatToStr(X1) + #13#10 + 'X2 = ' + FloatToStr(X2));
End;
2 и 3. Нет, так не получится. Дело в том, что компонент XPManifest - это просто, по сути, файл манифеста, который "вкомпиляется" в исполняемый модуль и обрабатывается в момент старта программы. Если хочешь, что бы программа меняла свой вид, то тебе понадобится специальная библиотека компонент для этого. Но советывать какую-либо сейчас не буду. Для большинства программ стандартный вид, "унаследованный" от текущих настроек операционной системы более подходит. На эту тему, если владеешь английским, есть неплохие статьи на сайте Микрософт по поводу дизайна UI.
4. Ну тут вопрос архитектуры программы. Если у тебя ОДНА И ТА ЖЕ проверка нужна для всех кнопок - то выносишь ее в отдельную функцию и из обработчика событий вызываешь ее. Не забудь так же при срабатывании проверки открлючить дальнейшее выполнение кода обработчика.
Например:
Код:
function TForm1.CheckEdit2 : Boolean;
begin
Result := False;
if (Edit2.Text='0') or (Edit2.Text='')
then ShowMessage ('Операция недопустима!')
else Result := True;
end;
procedure TForm1.Button1Click(Sender : TObject);
begin
if CheckEdit2 Then
Begin
// Специфический код для кнопки 1
End;
end;
procedure TForm1.Button2Click(Sender : TObject);
begin
if CheckEdit2 Then
Begin
// Специфический код для кнопки 2
End;
end;