Показать сообщение отдельно
  #2  
Старый 26.01.2010, 20:13
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

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;
Ответить с цитированием