[ milnen @ 12.09.2006. 14:31 ] @
Zdravo,

Koliko sam mogao da procitam iz Delphijevog helpa, isprekidane i tackaste linije su moguce samo za debljinu linije jednaku jedan.
Da li postoji neki automatski nacin za crtanje debljih isprekidanih linija, ili moram da pisem jednacinu prave i da sam crtam.

Pozdrav
[ savkic @ 12.09.2006. 15:36 ] @
> Koliko sam mogao da procitam iz Delphijevog helpa, isprekidane i tackaste linije su moguce samo za debljinu linije jednaku jedan.
> Da li postoji neki automatski nacin za crtanje debljih isprekidanih linija, ili moram da pisem jednacinu prave i da sam crtam.

To je ograničenje windowsa i GDIa, možeš probati sa GDI+, nisam siguran ali možda može sa njime da se izvede. Naravno uvek možeš da napišeš sam nešto.

[ milnen @ 12.09.2006. 21:42 ] @
Probao sam sa GDI+ i moze da se nacrta.
Posto sam se danas prvi put sreo sa ovim, otkrio sam samo osnovne stvari.
Da li mozda znas kako da grafik nacrtan sa GDI+ iskopiram na clipboard.
[ savkic @ 13.09.2006. 11:50 ] @
> Da li mozda znas kako da grafik nacrtan sa GDI+ iskopiram na clipboard.

Pogledaj TPicture.SaveToClipboarFormat.
[ milnen @ 13.09.2006. 12:07 ] @
Citat:
savkic: Pogledaj TPicture.SaveToClipboarFormat.


Znao sam za to, ali nisam znao kako da povezem grafik nacrtan sa GDI+ i TPicture.
U medjuvremenu sam pronasao. Za GDI+ sa koristio GDIPlus API sa http://www.progdigy.com
Evo primera sta sam radio:

Var Pen : TGPPen;
Image : TImage;
Graphic : TGPGraphics;

begin
Image:=TImage.Create(Self);
Image.Width:=500;
Image.Height:=400;
Graphic := TGPGraphics.Create(Image.Canvas.Handle);
Graphic.SetPageUnit(UnitPixel);
Graphic.SetSmoothingMode(SmoothingModeAntiAlias);
pen:=TGPPEn.Create(MakeColor(255,0,0,0),2);
pen.SetDashStyle(DashStyleDash);
Graphic.DrawLine(pen,1,1,300,300);
Image.Refresh;
Clipboard.Assign(Image.Picture);
Graphic.Free;
Image.Free;
end;