Re[3]: Как сделать красиво
От: SimplyJoe  
Дата: 12.03.06 17:19
Оценка:
Здравствуйте, CR-LF, Вы писали:

CL>Прошу прощения — я немного сократил оригинальный текст, а в результате

CL>получилась глупость.
CL>Более полный (но все еще не совсем оригинальный) вариант выглядел так
CL>
CL>procedure TQForm.SaveToDo;
CL>var
CL>  Tsk: TTask;
CL>begin
CL>  if Edit1.Text <> '' then begin
CL>    Tsk := TTask.Create(Edit1.Text);
CL>    if not AddTodoTask(Tsk) then Tsk.Free;
CL>  end;
CL>  if Edit2.Text <> '' then begin
CL>    Tsk := TTask.Create(Edit2.Text);
CL>    if not AddTodoTask(Tsk) then Tsk.Free;
CL>  end;
CL>  if Edit3.Text <> '' then begin
CL>    Tsk := TTask.Create(Edit3.Text);
CL>    if not AddTodoTask(Tsk) then Tsk.Free;
CL>  end;
CL>  if Edit4.Text <> '' then begin
CL>    Tsk := TTask.Create(Edit4.Text);
CL>    if not AddTodoTask(Tsk) then Tsk.Free;
CL>  end;
CL>end;
CL>

Так это уже другое дело
Как-минимум, напрашивается перемещение дублирующегося кода в отдельный метод, например, все проверки выполнять в процедуре AddTodoTask:
procedure AddToDoTask (AText: string);
var
  ATask: TTask;
begin
  if AText = '' then
    Exit;

  // тут сделать еще проверки предусловий, при необходимости
  // ....

  // создаем экземпляр задания
  ATask := TTask.Create (AText);

  // тут выполнить добавление в задания
  // ....
end;

Дальнейшее сводится к вариациям такого плана:
AddToDoTask (Edit1.Text);
AddToDoTask (Edit2.Text);
...

или просто к проходу по циклу этих TEdit'ов, заранее сформированному.

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