Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

Как нарисовать линию на TBitmap   Найти похожие ветки 

 
hgd   (2004-09-10 10:45) [0]

Как нарисовать линию на TBitmap?

Pic : TBitmap


 
PVOzerski ©   (2004-09-10 10:47) [1]

Там же Canvas тоже есть. А хочешь - можешь на WinAPI, через Canvas.Handle.


 
hgd   (2004-09-10 10:49) [2]

А не подскажите, мне надо нарисовать трапецию, можно ли нарисовать ее с помощью Shape. там есть квадраты, прямоугольника, а как трапецию?


 
PVOzerski ©   (2004-09-10 10:53) [3]

См. TCanvas.Polygon, TCanvas.Polyline


 
Ega23 ©   (2004-09-10 10:54) [4]

Там есть замечательные команды MoveTo и LineTo. Ими можно нарисовать АБСОЛЮТНО ВСЁ.


 
hgd   (2004-09-10 11:03) [5]

with Form1 do
   begin
     Image1.Canvas.MoveTo(200, 0);
     Image1.Canvas.LineTo(50, 400);
     Image1.Canvas.MoveTo(400, 0);
     Image1.Canvas.LineTo(550, 400);
   end

  Этот текст рисует линию на Image1, а как сделать чтобы фона небыло, а то он белый?


 
hgd   (2004-09-10 11:12) [6]

Нашел, свойство trunsp....
И еще один вопрос, как залить замнкнутый контур специфической заливкой (типа решеточки)?


 
PVOzerski ©   (2004-09-10 11:23) [7]

Я ж говорю: юзай TCanvas.Polygon. Brush в Canvas"е соответсвующий сделай.


 
Ega23 ©   (2004-09-10 11:24) [8]


var
BrushColor, PenColor : Integer;

with Form1.Image1.Canvas. do
begin
 BrushColor:=Brush.Color;
 Brush.Color:=clRed; //(например)
 FillRect(Form1.Image1.ClientRect);
 Brush.Color:=Brush.Color;

 PenColor:=Pen.Color;
 Pen.Color:=clBlue;
 MoveTo(200, 0);
 LineTo(50, 400);
 MoveTo(400, 0);
 LineTo(550, 400);
 Pen.Color:=PenColor;
end


 
PVOzerski ©   (2004-09-10 11:32) [9]

procedure TForm1.Button1Click(Sender: TObject);
const
trapezium:array[0..3]of tPoint=(
 (x:200;y:0),
 (x:400;y:0),
 (x:550;y:400),
 (x:50;y:400)
);
begin
with Canvas do
 begin
  brush.Color:=clBlack;
  brush.Style:=bsCross;
  Polygon(slice(trapezium,4));
 end;
end;


 
hgd   (2004-09-10 11:57) [10]

А можно рисовать на Image линию в динамике (тоесть через OnMouseMove), да чтобы еще фон был прозрачный.

не помогает
Image1.Canvas.FillRect(ClientRect);


 
PVOzerski ©   (2004-09-10 12:05) [11]

Можно, выставив Canvas.Pen.Mode:=pmNot и затирая предыдущее положение линии ее повторной прорисовкой. Но лучше бы это обсуждать в отдельной ветке...


 
Ega23 ©   (2004-09-10 12:06) [12]

не Image1.Canvas.FillRect(ClientRect),
а Image1.Canvas.FillRect(Image1.ClientRect);


 
hgd   (2004-09-10 12:41) [13]

А как очистить Canvas после зарисовки?



Страницы: 1 вся ветка

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.024 c
1-1094653133
Flagman
2004-09-08 18:18
2004.09.26
Адрес e-mail в шаблоне FlexCelReport?


1-1094634100
Sashkosoft
2004-09-08 13:01
2004.09.26
Создать файл наподобии архивного


14-1094481105
Заходитель
2004-09-06 18:31
2004.09.26
Горячий камень: блиц-опрос


1-1094639011
Boris
2004-09-08 14:23
2004.09.26
Управление портами


4-1092476144
_Stalker_
2004-08-14 13:35
2004.09.26
Страничная память