Autor Beitrag
Jenny
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35



BeitragVerfasst: So 06.04.03 17:14 
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure TForm1.b_drawClick(Sender: TObject);
var a:array[1..50] of integer;
    i,x1,y1,x2,y2:integer;
begin
  x1:=(i-1)*4;
  y1:=image1.height-a[i];
  x2:=4*i;
  y2:=image1.height;
  randomize;
  for i:=1 to 50 do
  a[i]:=Random(50);
  with image1.canvas do
  begin
    brush.color:=clWhite;
    FillRect(ClipRect);
    brush.color:=clRed;
    rectangle(x1,y1,x2,y2);

  end;
end;


bei mir kommen garkeine balken in meinem canvas :(
Raphael O.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1596


VS 2013
BeitragVerfasst: So 06.04.03 17:42 
das liegt u.a. daran, dass du x1,x2,... nicht in der Schleife zuordnest, sodass sie Werte vom nicht initialisierten i zugewiesen bekommen...
Jenny Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35



BeitragVerfasst: So 06.04.03 18:30 
ich hatte die ganzen zuweisungen der x und y werte auch mal nach das rectangle gepackt aber da hat es auch nich funktioniert :?

oder war noch was falsch? irgendein verbesserungsvorschlag? :)
Raphael O.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1596


VS 2013
BeitragVerfasst: So 06.04.03 20:27 
also nochmal...
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure TForm1.b_drawClick(Sender: TObject);
var i:integer;
    P1,P2:Tpoint;
begin
  randomize;
  image1.canvas.brush.color:=clwhite);
  image1.canvas.rectangle(0,0,image1.width,image1.height);
  image1.canvas.brush.color:=clred;
  for i:=1 to 50 do
begin  
  with image1.canvas do
  begin
    P1.x:=(i-1)*4;
    P1.y:=image1.height-Random(50);;
    P2.x:=4*i;
    P2.y:=image1.height;
    rectangle(x1,y1,x2,y2);
  end;
end;
end;


allerdings werden die Balken da ziemlich schmal sein...(4Pixel)

habe es jetzt acuh nicht ausprobiert und außerdem noch etwas abgeändert...
einfach mal ausprobieren ;)