![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
Помогите с написанием комментарии к листингу программы. Надо почти к каждой процедуре или функции написать комментарий. Необязательно к каждой строчке.
Код:
procedure TMainForm.ToolButton8Click(Sender: TObject);
var F: TextFile;
i: Integer;
begin
try
with SaveDlg, PersonsList.Items do
begin
if Not Execute then Exit;
SaveToFile(FileName);
AssignFile(F, Copy(FileName,1,Length(FileName)-4)+'.lso');
Rewrite(F);
for i := 0 to Count - 1 do
if Objects[i] <> Nil then
begin
Writeln(F, (Objects[i] as THuman).FirstName);
Writeln(F, (Objects[i] as THuman).LastName);
Writeln(F, (Objects[i] as THuman).Age);
Writeln(F, (Objects[i] as THuman).Document);
Writeln(F, (Objects[i] as THuman).Address);
Writeln(F, (Objects[i] as THuman).Phone);
end;
CloseFile(F);
end;
except
on E: EFOpenError do ShowMessage('Ошибка открытия файла');
end;
end; |
|
#2
|
|||
|
|||
|
Код:
//Начало подрограммы "Нажатие на тулбаттон8"
procedure TMainForm.ToolButton8Click(Sender: TObject);
//объявление переменных
var F: TextFile;// переменная типа текстовый файл
i: Integer;//перемененная типа целое
begin
try // попытаемся сделать
with SaveDlg, PersonsList.Items do // использовать диалог сохранения и список
begin
if Not Execute then Exit; // если в диалоге нажали "Отмену" - выйдем
// если не нажимали "отмену" в диалоге
SaveToFile(FileName);//сохраняем в файл с именем, которое выбрали в диалоге
AssignFile(F, Copy(FileName,1,Length(FileName)-4)+'.lso'); // связываем переменную типа файл с файлом, имя которого состоит из имени сохраненного без 4 последних символов с расширение lso
Rewrite(F);// открываем файл на запись
for i := 0 to Count - 1 do // по всему списку
if Objects[i] <> Nil then // если объект существует
begin //пишем поля объекта в файл построчно
Writeln(F, (Objects[i] as THuman).FirstName);
Writeln(F, (Objects[i] as THuman).LastName);
Writeln(F, (Objects[i] as THuman).Age);
Writeln(F, (Objects[i] as THuman).Document);
Writeln(F, (Objects[i] as THuman).Address);
Writeln(F, (Objects[i] as THuman).Phone);
end;//конец пишем поля объекта в файл построчно
CloseFile(F);//закрываем файл
end;
except // если что-то не так пошло
on E: EFOpenError do ShowMessage('Ошибка открытия файла'); // конкретно не получилось файл открыть - показываем сообщение
end;//конец "попытаемся сделать"
end;//конец подпрограммы |
|
#3
|
||||
|
||||
|
спасибо xchrom. Ещё один вопрос как описать вот эту процедуру
Код:
begin if ItemIndex = -1 then Exit; if not Assigned(Objects[ItemIndex]) then Objects[ItemIndex] := THuman.Create(Items[ItemIndex]); with Objects[ItemIndex] as THuman do |
|
#4
|
|||
|
|||
|
Что-то не видно в приведенном коде никакой процедуры - ее кусок разве. Нельзя ли окошко отворить пошире, чтобы увидеть хотя бы к какому компоненту относится свойство ItemIndex.
|
|
#5
|
||||
|
||||
|
Конечно можно
Код:
procedure TMainForm.ToolButton2Click(Sender: TObject); begin with PersonsList, PersonsList.Items do //использовать список и элементы списка begin if ItemIndex = -1 then Exit; if not Assigned(Objects[ItemIndex]) then Objects[ItemIndex] := THuman.Create(Items[ItemIndex]); with Objects[ItemIndex] as THuman do begin FNameEdit.Text := FirstName; LNameEdit.Text := LastName; AgeEdit.Value := Age; DocEdit.Text := Document; AddrEdit.Text := Address; PhoneEdit.Text := Phone; //делаем все Edit активными для редактирования FNameEdit.Enabled := true; LNameEdit.Enabled := true; AgeEdit.Enabled := true; DocEdit.Enabled := true; AddrEdit.Enabled := true; PhoneEdit.Enabled := true; end; end; end; и сразу возникает другой вопрос что значит вот это, что за constructor Код:
constructor THuman.Create(AName: String); begin inherited Create; FirstName := AName; end; |
|
#6
|
|||
|
|||
|
По последнему вопросу.
THuman - это, скорее всего, самодельный класс (где-то объявленный и, судя по работе с ним в процедуре TMainForm.ToolButton2Click, какая-то форма - от TForm) и при конструировании его экземпляра в его поле FirstName передается строка (видимо, с фамилией). Да, но, скорее всего если это форма, то метод Create перекрыт, иначе в этом методе должен присутствовать обязательный параметр AOwner : TComponent. Т.е. ясности что за класс THuman нет. А в TMainForm.ToolButton2Click проверяется не пустой ли список (скорее всего TListBox'а) конструкцией "if ItemIndex = -1" и, если не пустой, то создается форма (класс THuman). При создании в метод Create передается отмеченная в PersonsList строка. Далее поля формы заполняются значениями и открываются для редактирования. Что дальше происходит из процедуры не ясно. Последний раз редактировалось san-46, 21.06.2008 в 10:29. |