Delphi5. Oprette, navngive, placere og angive værdi på Label i loop.
Jeg skal grafisk tegne nogle måleværdier i et TImage.I et loop tegner jeg et lodret og vandret gitter, hvor antallet af linjer og afstand mellem dem fastlægges i programmet.
Samtidig med tegningen af gitteret vil jeg gerne sætte label ud for gitterlinjerne, hvor værdien for gitterlinjen angives.
Jeg har i øjeblikket følgende:
function MakeScale(x_pix, y_pix: Integer):Boolean;
// y_pix er antal pixel pr mm regn.
Var i, Bund, tmp1, tmp2, tmp3, tmp4: Integer;
Begin
Form1.Image1.Canvas.Pen.Width := 1;
Form1.Image1.Canvas.Pen.Color := clBlue;
Form1.Image1.Canvas.FillRect(Rect(2,2,Form1.Image1.Width-2,Bund-2));
Bund := Form1.Image1.Height;
//Tegn x-akser
for i:=1 to Round(Form1.Image1.Width/x_pix) do
Begin
Form1.Image1.Canvas.MoveTo(i*x_pix,Bund);
Form1.Image1.Canvas.LineTo(i*x_pix,0);
//Her skal der anbringes labels på x-aksen
End;
//Tegn y-akser
for i:=1 to Round(Form1.Image1.Height/y_pix) do
Begin
Form1.Image1.Canvas.MoveTo(0,Bund-(i*y_pix));
Form1.Image1.Canvas.LineTo(0,Form1.Image1.Width-Bund-(i*y_pix));
//Her skal der anbringes labels på y-aksen
End;
End;
Jeg kan godt lave en label:
Lab := TLabel.Create(Self);
Lab.Parent := Form1;
Lab.Caption := IntToStr(i);
Lab.Left := Form1.Image1.Left-Form1.Label1.Width-3
Lab.Top := Form1.Image1.top + Form1.Image1.Height-tmp1-6;
Men hvis jeg gør det i mit loop, er det jo den samme label, der flyttes rundt.
Hvordan opretter jeg en ny label for hvert gennemløb?