32 Урока Borland Delphi


Урок 05 - часть 4


текст выводится только внутри указанного прямоугольника. Длину и высоту текста можно узнать с помощью функций TextWidth и TextHeight.
 
 
  • Объект TPaintBox

  •  

     

    На странице System Палитры Компонент есть объект TPaintBox, который можно использовать для построения приложений типа графического редактора или, например, в качестве места построения графиков (если, конечно, у Вас нет для этого специальных компонент третьих фирм). Никаких ключевых свойств, кроме Canvas, TPaintBox не имеет, собственно, этот объект является просто канвой для рисования. Важно, что координаты указателя мыши, передаваемые в обработчики соответствующих событий (OnMouseMove и др.), являются относительными, т.е. это смещение мыши относительно левого верхнего угла объекта TPaintBox, а не относительно левого верхнего угла формы.
     
     

  • Примеры  ex05.zip
  • В первом примере (проект SHAPE.DPR, рис.1) показано, как во время выполнения программы можно изменять свойства объекта TShape. Изменение цвета объекта (событие OnChange для ColorGrid1): procedure TForm1.ColorGrid1Change(Sender: TObject);
    begin
    Shape1.Brush.Color:=ColorGrid1.ForeGroundColor;
    end;
     


     
      Во втором примере (проект PIXELS.DPR, рис.2) показано, как осуществить доступ к отдельной точке на изображении (на канве). По нажатию кнопки “Fill” всем точкам изображения присваивается свой цвет:
     
     
     
     
     
     
     
     
     
     
     
     

    procedure TForm1.Button1Click(Sender: TObject);
    var
    i, j : Longint;
    begin
    Button1.Enabled:=False;
    with Canvas do
    for i:=1 to Width do begin
    Application.ProcessMessages;
    for j:=1 to Height do
    Pixels[i,j]:=i*j;
    end;
    Button1.Enabled:=True;
    end;
     


     

    В третьей программе (проект DRAW.DPR, рис.3) приведен пример использования методов, выводящих изображение - Draw и StretchDraw:
     
     
     
     
     
     


     
     

    Прорисовка изображений происходит в обработчике события OnPaint для формы:
     
     
     
     
     
     

    procedure TForm1.FormPaint(Sender: TObject);
    begin
    with Canvas do begin
    Draw(0,0, Image1.Picture.BitMap);
    StretchDraw(Rect(250,0,350,50),Image1.Picture.BitMap)
    end;
    end;
     
     




    - Начало -  - Назад -  - Вперед -