Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.024 c
1-1094806737
hgd
2004-09-10 12:58
2004.09.26
Как очитстить Canvas Image?


1-1094166862
O l e g
2004-09-03 03:14
2004.09.26
Переполнение стека, что это?


1-1094736375
SMT
2004-09-09 17:26
2004.09.26
Передача массива чисел из прораммы с строку листа Excel


1-1094718598
V l a d i m i r
2004-09-09 12:29
2004.09.26
Если запущен Word, как активировать только что созданный документ


14-1094218705
СатирЪ
2004-09-03 17:38
2004.09.26
Кто знает, на каком это языке и что это значит?




   Наверх