Спасибо. Я как раз продолжаю сам изучать теорию ооп.
Но в данном конкретном примере, для начинающих, так сказать, не будет ли это избыточным усложнением? То есть, когда в школе учат формулам скорости, веса, ведь никто сходу не говорит, что нужно учитывать теорию относительности взамен простых вычислений s=vt.
Всё поправил)
Интересно, а у меня одного лазарус в убунте ведет себя странно? То окна не найдешь, то новый проект сохраняет в старом (вот поэтому и вылез unit1).
Ошибка при закрытии выпала, видимо, от того, что пока удаляются объекты, успевал сработать еще раз таймер. Выключил его при закрытии.
Теперь затираемые розы не «портят» перекрытые.
А насчет деструктора — в него нельзя передать параметр, поэтому сделал метод kill.
А вообще я подумал, когда роза затирается, то можно организовать проверку пикселя перед сменой цветы на черный — если цвет не принадлежит этой розе, то и не затирать этот пиксель. Позже надо попробовать. Будет красивее.
Это не из-за цветов, просто рисуются они все на одной канве пикселями, друг на дружке, соответственно и затираются черным цветом тоже друг на дружке. У меня на работе целый год скринсейвером стоял, не придавал значения этому «дефекту».
Здравствуйте.
Большое спасибо за комментарии и то, что потратили время на такой дельный разбор. Я на самом деле этот учебный (для себя) проект делал пару лет назад, и тогда, если бы я дорабатывал его до идеала, я бы тоже решил запрятать полностью всю работу в классы. Потом забросил.
Теперь вот решил допилить, учел практически полностью Ваши замечания, новый файл в ветке lesson4.
Я только не понял в чем разница — передавать свойство Canvas или весь объект Image, я пока оставил Canvas. И отдельный метод для стирания писать не стал, т.к. считаю это избыточным, ведь нужна всего одна строчка, а ее я запрятал в аналог деструктора (метод kill), то есть в конечном итоге, как и предлагалось, обработчик таймера делает лишь DrawNext ))
Но в данном конкретном примере, для начинающих, так сказать, не будет ли это избыточным усложнением? То есть, когда в школе учат формулам скорости, веса, ведь никто сходу не говорит, что нужно учитывать теорию относительности взамен простых вычислений s=vt.
Я вот только погружаюсь в структуры, кажется, вместо списка здесь даже лучше использовать очередь, и в fcl есть для такого случая класс.
Таки-пришлось TImage передавать.
Интересно, а у меня одного лазарус в убунте ведет себя странно? То окна не найдешь, то новый проект сохраняет в старом (вот поэтому и вылез unit1).
Ошибка при закрытии выпала, видимо, от того, что пока удаляются объекты, успевал сработать еще раз таймер. Выключил его при закрытии.
Теперь затираемые розы не «портят» перекрытые.
А насчет деструктора — в него нельзя передать параметр, поэтому сделал метод kill.
Большое спасибо за комментарии и то, что потратили время на такой дельный разбор. Я на самом деле этот учебный (для себя) проект делал пару лет назад, и тогда, если бы я дорабатывал его до идеала, я бы тоже решил запрятать полностью всю работу в классы. Потом забросил.
Теперь вот решил допилить, учел практически полностью Ваши замечания, новый файл в ветке lesson4.
Я только не понял в чем разница — передавать свойство Canvas или весь объект Image, я пока оставил Canvas. И отдельный метод для стирания писать не стал, т.к. считаю это избыточным, ведь нужна всего одна строчка, а ее я запрятал в аналог деструктора (метод kill), то есть в конечном итоге, как и предлагалось, обработчик таймера делает лишь DrawNext ))