ok here is an example, <br>(look the red letters)<br><br><br>///////////////////////////////////////////////////////////////////////////////////////<br>program drawtest;<br><br>{$mode objfpc}{$H+}<br><br>uses<br> {$IFDEF UNIX}{$IFDEF UseCThreads}<br>
cthreads,<br> {$ENDIF}{$ENDIF}<br> Classes,<br> fpgfx,<br> gfxbase,<br> gui_form,<br> math,crt,<br> gfx_imgfmt_bmp;<br> <br>type<br><br> TMainForm = class(TfpgForm)<br> public<br> img: TfpgImage;<br> constructor Create(AOwner: TComponent); override;<br>
destructor Destroy; override;<br> procedure HandlePaint; override;<br> end;<br><br>Const<br><br>m=1000;<br><br>Var<br> results : array [1..m] of integer;<br> intS : array[1..m,1..2] of integer;<br> <br>
<br> i :longint; <br> x2,y2,l1,l2 :integer; <br>frm: TMainForm;<br><br>{ TMainForm }<br>FUNCTION logos(c,b :integer): integer;<br>BEGIN<br> logos:= (l1*c+(l2-l1)*b) div (l2)<br> END;<br><br>constructor TMainForm.Create(AOwner: TComponent);<br>
begin<br> inherited Create(AOwner);<br> WindowTitle := 'ÅëëçíéêÜ ãñÜììáôá ';<br> SetPosition(1000, 1000, 1024, 768);<br> Sizeable := False;<br><br>end;<br><br>destructor TMainForm.Destroy;<br>begin<br> img.Free;<br>
inherited Destroy;<br>end;<br>procedure MainProc;<br><br>begin<br> fpgApplication.Initialize;<br> frm := TMainForm.Create(nil);<br> frm.Show;<br> fpgApplication.Run;<br> frm.Free; <br>end;<br>procedure TMainForm.HandlePaint;<br>
<br><br>var<br>x,R,y,u:real;<br>n,k:integer;<br>Begin<br><br> Canvas.BeginDraw;<br> inherited HandlePaint;<br> Canvas.Clear(clWhite);<br> Canvas.DrawImage(1024, 768, img);<br>l1:=1;<br>l2:=2;<br> n:=3;<br> R:=intpower(380,n);<br>
<br> k:=0;<br> u:=pi/2;<br> For i:= 1 to n do<br> Begin<br> x:=power(R,(1/n))*cos(((2*k*pi+u)/n))+512;<br> y:=power(R,(1/n))*sin(((2*k*pi+u)/n))+384;<br> ints[i,1]:=trunc(x);<br> ints[i,2]:=trunc(y);<br>
k:=k+1;<br> <br> end;{For-loop}<br> Canvas.SetColor(clBlack);<br> Canvas.DrawLine(intS[1,1], intS[1,2],intS[n,1], intS[n,2]);<br> For i:=2 to n do <br> Canvas.DrawLine(intS[i-1,1], intS[i-1,2],ints[i,1], intS[i,2]);<br>
<br> Canvas.EndDraw;<br> Randomize;<br><br> For i:=1 to m do <br> begin<br> results[i]:=random(n)+1;<br> end;{For-loop}<br>X2:= 500;<br>y2:=500;<br><br>For i:=1 to m do <b><span style="color: rgb(255, 0, 0);">// if <u>m</u> is very big (e.g 1000000) the user gets a black screen until all the points are drawn </span></b><br>
Begin <br> x2:=logos(x2,intS[results[i],1]);<br> y2:=logos(y2,intS[results[i],2]);<br> Canvas.BeginDraw;<br> Canvas.Pixels[x2, y2] := clblack;<span style="color: rgb(102, 0, 204);"></span><br>
Canvas.EndDraw;<br> end;{For-loop}<br> <br>end;<br><br>begin<br> MainProc;<br>end.<br>///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br>
<br>So <span style="color: rgb(0, 0, 0);"> is there any way to</span> show to the user the points <u>the moment</u> they are drawn ? In other words i want to make a window which draws and shows points real-time.<br><br>Is these explanation good enough ? If it isn't, i can make a more simple example.<br>
<br><br><br><br><div class="gmail_quote">2009/6/24 Graeme Geldenhuys <span dir="ltr"><<a href="mailto:graemeg@opensoft.homeip.net">graemeg@opensoft.homeip.net</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">kota kota wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Now i need some more specific information: Is there any way to show the drawing's steps(created on a Canvas) before the final image is ready?<br>
</blockquote>
<br></div>
Sorry, I do not understand? What drawings?<br>
<br>
<br>
<br>
Regards,<br>
- Graeme -<br>
<br>
________________________________________________<br>
fpGUI - a cross-platform Free Pascal GUI toolkit<div><div></div><div class="h5"><br>
<a href="http://opensoft.homeip.net/fpgui/" target="_blank">http://opensoft.homeip.net/fpgui/</a><br>
<br>
_______________________________________________<br>
fpc-pascal maillist - <a href="mailto:fpc-pascal@lists.freepascal.org" target="_blank">fpc-pascal@lists.freepascal.org</a><br>
<a href="http://lists.freepascal.org/mailman/listinfo/fpc-pascal" target="_blank">http://lists.freepascal.org/mailman/listinfo/fpc-pascal</a><br>
</div></div></blockquote></div><br>