четверг, 26 сентября 2013 г.

Графика в Lazarus

   Рисование является одним из любимых занятий для многих людей. Итак, создадим новый проект - приложение и перейдем к событию формы OnPaint. В результате в редакторе кода появится следующая процедура:

procedure TForm1.FormPaint(Sender: TObject);
begin

end;  

Теперь добавим внутрь следующий код
 form1.Canvas.pen.Color:=clred;
  form1.Canvas.pen.Width:=3;
  form1.Canvas.pen.Style:=psDot;
  form1.Canvas.Brush.Color:=clgreen;
  form1.Canvas.Brush.Style:=bsCross ;
  form1.Canvas.Ellipse(50,50,200,200);
  
   Попробуем разобраться, что за методы и свойства формы мы использовали. Для того, чтобы вывести на поверхность объекта (объекты Form или Image) графический элемент (прямую линию, эллипс, прямоугольник и др.), необходимо применить к свойству Canvas (Холст) этого объекта соответствующий метод. Как и во многих графических редакторах, для рисования используются два инструмента - Pen (карандаш) и Bruch (кисть). Карандаш рисует контур фигуры, а кисть окрашивает внутреннюю часть фигуры. 
   Так, фрагмент кода  form1.Canvas.pen.Color:=clred задает красный цвет карандаша,
фрагмент form1.Canvas.pen.Width:=3 определяет его толщину, а код form1.Canvas.pen.Style:=psDot отвечает за стиль линии. Аналогично настраиваются параметры кисти. 
   Теперь, когда все параметры указаны, можно перейти к рисованию фигуры. Любая точка формы имеет свои координаты. Для рисования объекта нужно указать, в каком месте формы будет произведено построение фигуры. При этом начало координат расположено в верхнем левом углу формы. 
   Так, код form1.Canvas.Ellipse(50,50,200,200) вызовет построение эллипса на форме в указанных координатах. 
   Свойства объектов Pen и Brush:
Pen
Цвет: clblack-черный, clwhite-белый, clgreen-зеленый, clblue-голубой и т.д.
Стиль линии: pssolid-сплошная, psdash-длинный штрих,psdot-короткий штрих,psclear-невидимая линия
Brush
Цвет: clblack-черный, clwhite-белый, clgreen-зеленый, clblue-голубой и т.д.
Стиль (тип закрашивания): bssolid-сплошная заливка, bsclear-без заливки,bsvertical вертикальный штрих,bscross-клетки,bsdiagcross-наклонные клетки.
   Поговорим о некоторых фигурах, которые можно нарисовать.
  Точка
Form1.Canvas.Pixels(x,y) - точка в заданных координатах
  Линия:
Form1.Canvas.MoveTo(x,y)  -  начальная точка
Form1.Canvas.LineTo(x,y)  -  конечная точка 
 Прямоугольник
Form1.Canvas.Rectangle(a,b,x,y) - где (a,b) и (x,y) - координаты противоположных вершин

   

воскресенье, 22 сентября 2013 г.

Введение в ООП

    Аббревиатура ООП означает объектно-ориентированное программирование. С программированием вы уже знакомы, и знаете, что программа - это некоторая последовательность команд, предназначенная для решения конкретной задачи. В ООП пользователь не только пишет код программы, но и выступает проектировщиком. А что же он проектирует, спросите вы? Вот здесь и начинается главное отличие. Если ранее вы оперировали аморфными (бесформенными, если хотите) понятиями, то в ООП мы будем иметь дело с реальными объектами, точнее, с целыми классами объектов, обладающими своими свойствами и методами. Каждый объект принадлежит определенному классу (типу), который задает поведение объектов, созданных на его основе. 
    Об объектах можно думать как о полезных существах, которые "живут" в вашей программе и коллективно решают некоторую прикладную задачу. Вы, как Демиург, лепите этих существ, распределяете между ними обязанности и устанавливаете правила их взаимодействия. В общем случае каждый объект "помнит" необходимую информацию, "умеет" выполнять некоторый набор действий и характеризуется набором свойств. То, что объект "помнит", хранится в его полях. То, что объект "умеет делать", реализуется в виде его внутренних процедур и функций, называемых методами. Свойства объектов аналогичны свойствам, которые мы наблюдаем у обычных предметов. Значения свойств можно устанавливать и читать. 
    Говорят, ООП держится на трех "китах".
 - Инкапсуляция.
      Инкапсуляция - это механизм, объединяющий данные и обрабатывающий их код как единое целое. Другими словами, это означает "скрытость" от пользователя функционирования свойств, методов объектов. Нам говорят: не надо отвлекаться на понимание сути, просто берите, и используйте. Хотя это вовсе не означает, что программист не может вникнуть в систему объекта.  
 - Наследование.
    Это означает, что любой объект (класс) перенимает все свойства своего прародителя, причем получает еще и новые свойства, определенные программистом. Это очень сильно экономит время при создании новых объектов (классов).
 - Полиморфизм
Полиморфизм позволяет использовать одни и те же имена для похожих, но технически разных задач. Главным в полиморфизме является то, что он позволяет манипулировать объектами путем создания стандартных интерфейсов для схожих действий. Полиморфизм значительно облегчает написание сложных программ.
   

суббота, 21 сентября 2013 г.

Web-конференция как средство обучения

   Наверняка, вы согласитесь со мной, что часто учебного времени не хватает для изучения материала, особенно в средних и старших классах. Всегда есть слабо успевающие, или, наоборот, сильные учащиеся, которым требуется дополнительное внимание, а урок ведь не резиновый, и все, что мы хотели донести до них, не укладывается в рамки урока... Именно поэтому мы назначаем дополнительные занятия (хорошо, если они оплачиваются), проводим в школе много лишнего времени, заставляем учащихся приходить после обеда и т.д, и прочее...
   Без этих занятий, к сожалению, не удается достичь хорошего качества знаний по предмету. Но тут опять на помощь учителю приходят современные способы интернет-взаимодействия. И я хочу вас познакомить с Google Hangouts. Находясь на страничке почты gmail, вы можете указать, кого из друзей вы хотите пригласить на видеовстречу, вы можете обмениваться в чате фотографиями и смайлами.