Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.06.2008, 14:26
Аватар для MezKo
MezKo MezKo вне форума
Прохожий
 
Регистрация: 20.06.2008
Сообщения: 19
Репутация: 10
Восклицание Комментарии к листингу программы

Помогите с написанием комментарии к листингу программы. Надо почти к каждой процедуре или функции написать комментарий. Необязательно к каждой строчке.
Код:
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  
Старый 20.06.2008, 15:57
xchrom xchrom вне форума
Начинающий
 
Регистрация: 08.04.2008
Сообщения: 177
Репутация: 15
По умолчанию

Код:
//Начало подрограммы "Нажатие на тулбаттон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  
Старый 20.06.2008, 17:53
Аватар для MezKo
MezKo MezKo вне форума
Прохожий
 
Регистрация: 20.06.2008
Сообщения: 19
Репутация: 10
По умолчанию

спасибо 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  
Старый 21.06.2008, 08:34
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Что-то не видно в приведенном коде никакой процедуры - ее кусок разве. Нельзя ли окошко отворить пошире, чтобы увидеть хотя бы к какому компоненту относится свойство ItemIndex.
__________________
Не забывайте делать резервные копии
Ответить с цитированием
  #5  
Старый 21.06.2008, 09:37
Аватар для MezKo
MezKo MezKo вне форума
Прохожий
 
Регистрация: 20.06.2008
Сообщения: 19
Репутация: 10
По умолчанию

Конечно можно
Код:
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;
и кстати name формы не THuman как я сначала подумал. name формы MainForm1.Может THuman это какая-то переменная ?
Ответить с цитированием
  #6  
Старый 21.06.2008, 10:17
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

По последнему вопросу.
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.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:58.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025