Показать сообщение отдельно
  #16  
Старый 26.02.2014, 00:05
big_djo big_djo вне форума
Прохожий
 
Регистрация: 21.02.2014
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Согласен ляпы есть.


Цитата:
2. Примеры довольно странные. форма, которая меняет цвет и размер, когда её передвигают. Почему вы рисуете на форме, а не на панели (или на PainiBox)? Ведь Delphi не для того, чтобы создавать приколы. Есть стандартные задачи: текстовый/графический редакторы, обработка файлов, базы данных, связь по сети, вычисления и графики, алгоритмы (сортировка и проч.). Для начала надо показать, как правильно делать интерфейс (меню, поля информации, кнопки управления) и какими средствами решать типовые задачи.

Пример с формой чтобы демонстрировать обработку сообщений наглядно, мы двигаем форму и вот оно! генерируется сообщение и обрабатывается.
Форма взята для простоты, думаю это не принципиально на чем рисовать.




Цитата:
3. Следите, пожалуйста, за русским языком. Напр., в фразе "недолжно быть" "не" пишется отдельно. Следите за логикой. Напр.: "компонент называется (является) объектом". Термин "объект" вы пояснили, но забыли пояснить термин "компонент". "Можно отлавливать нежелательные события": если они нежелательные, то зачем их отлавливать? Просто не ставить для них обработчики. Timer.Enable=false вы считаете недоступным, но не надо переводить буквально, просто таймер останавливается (перестают вызываться обработчики OnTimer). И т.д.

За проверку орфографии отвечают также и в издательстве перед печатью, наверное пропустили.
С компонентом да , не дал определение.


Цитата:
4. Анг. язык. Почему вы использовали 'drug', что означает "лекарство, наркотик"? "Перетащить и бросить" это Drag&Drop. (При этом вы не рассказываете об автоматической схеме Drag&Drop - опять же, логика хромает).

не обратил внимание на это, надо будет исправить. Возможно да, надо было бы привести автоматической схеме Drag&Drop.


Цитата:
6. Насколько я понимаю, книга для новичков. Но вы довольно глубоко копнули, допустим, dll, messages, API. Вот вы привели код TApplication.CreateForm. Неужели новичок его поймёт? Я сам не стал разбираться.
Думаю на конкретных простых примерах новички смогут разобраться. И я это уже испробовал на многих студентах.


Цитата:
7. Ещё странная логика. Почему, если нет корней в квадратном уравнении, то надо аварийно закрывать программу (halt)? Почему не выдать сообщение "Корней нет, т.к. дискриминант отрицательный"?
Почему для сообщения вы используете то ShowMessage, то MessageDlg?

Уже увидел это когда отправил в печать. halt лишний. Насчет фразы "Дискриминант отрицательный" думаю это излишне, достаточно просто "Корней нет".

Цитата:
8. Визуальные компоненты на палитре не называются Edit1, Button1, называйте их TButton или Button.
Это сделано для упрощения, но замечание правильное.

9. То, что выбрана Delphi7 это хорошо (т.к. если использовать XE5, то лучше переходить на FireMonkey), но используйте реалии сегодняшнего дня: во-первых, CLX вы не сможете использовать (как я только что указал, для кроссплатформенных систем используется FireMonkey), во-вторых, старые hlp-файлы справки новые Windows по умолчанию не поддерживают, так что надо было бы указать как решать эту проблему.

Цитата:
Общий совет такой: если вы приводите свой вариант, то намекните, что существуют и другие решения. Напр. if CheckBox.Checked=T then Timer.Enable:= T else Timer.Enable:= F можно было упростить:
Timer.Enable:= CheckBox.Checked.
Почему вы пишете if L= true then? Это вы у Сишников насмотрелись? Можно писать покороче: if L then (L - логическое выражение).
Это тоже уже пофиксил.

Цитата:
Есть ещё куча замечаний, но рука устала писать.

Спасибо за замечания, я собираюсь сделать новую верисю книжки, тщательно пересмотрю код, и учту все замечания.
Ответить с цитированием