Klappt doch eh nicht und skalieren muss das Ding auch können.
Um es bei deinen Worten zu belassen: hab ich keinen Bock drauf, obwohl ich es brauche.
Für die Skalierung würde sich was mit Prozentrechnung anbieten. Da ich kein Mathematiker bin und ein Matheschwächling, fällt das wieder raus.
Delphi-Quellcode:
var
val: Integer;
begin
val := RandomRange(25, 45);
val := (val * 100)
div StrToIntDef(Edit1.Text, PaintBox1.Height);
iNewPos.X := iNewPos.X;
iNewPos.Y := bmp.Height - val;
bmp.Canvas.Pen.Color := clBlack;
bmp.Canvas.Brush.Color := clBlack;
bmp.Canvas.MoveTo(iNewPos.X, iNewPos.Y);
bmp.Canvas.LineTo(iNewPos.X, bmp.Height);
if iNewPos.X > 0
then
begin
bmp.Canvas.Pen.Color := clRed;
bmp.Canvas.MoveTo(iOldPos.X, iOldPos.Y);
bmp.Canvas.LineTo(iNewPos.X, iNewPos.Y);
end;
iOldPos.X := iNewPos.X;
iOldPos.Y := bmp.Height - val;
PaintBox1.Repaint;
Inc(iNewPos.X, 5);
if iNewPos.X >= PaintBox1.Width
then
begin
Dec(iPosXBmp, 5);
bmp.Width := bmp.Width + 5;
end;
end;
Probleme hier: rote Linie schießt oben raus, wenn Edit1.Text < 40
Hintergrund ist schwarz komischerweise.