infostabil > edb.programmering.* > edb.programmering.pascal

Kurt G (29.04.2013, 21:59)
Jeg har 8 TEdit under hinanden, som hedder:
ediM1, ediM2, ediM3, ediM4, ediM4, ediM5, ediM6, ediM7 og ediM8.

De skal tildeles tekst for de værdier, der er i et array, som er defineret
således:
KanalKal: Array[1..8] Of Real;
Det gør jeg i øjeblikket således:
ediM1.Text := FormatFloat('##0.000',(KanalKal[1]));
ediM2.Text := FormatFloat('##0.000',(KanalKal[2]));
ediM3.Text := FormatFloat('##0.000',(KanalKal[3]));
ediM4.Text := FormatFloat('##0.000',(KanalKal[4]));
ediM5.Text := FormatFloat('##0.000',(KanalKal[5]));
ediM6.Text := FormatFloat('##0.000',(KanalKal[6]));
ediM7.Text := FormatFloat('##0.000',(KanalKal[7]));
ediM8.Text := FormatFloat('##0.000',(KanalKal[8]));

Men findes der ikke en måde, så det kan gøres i en loop?

For x := 1 to 8Do
Begin
??????[x] := FormatFloat('##0.000',(KanalKal[x]));
End;

Mvh Kurt
Michael Haase (29.04.2013, 22:41)
Kurt G skrev dette den 29-04-2013 21:59:
[..]
> ediM7.Text := FormatFloat('##0.000',(KanalKal[7]));
> ediM8.Text := FormatFloat('##0.000',(KanalKal[8]));
> Men findes der ikke en måde, så det kan gøres i en loop?
> For x := 1 to 8Do
> Begin
> ??????[x] := FormatFloat('##0.000',(KanalKal[x]));
> End;


Hvis du smider dine TEdit i en Tgroupbox, kan du bruge følgende:

editno := 0;
for i := 0 to Groupbox1.controlcount - 1 do
begin
if (groupbox1.controls[i] is TEdit) then
begin
inc(editno);
(groupbox1.controls[i] as TEdit).text :=
FormatFloat('##0.000',(KanalKal[editno]));
end
end;

EditNo skulle kun være nødvendigt, hvis du også kommer andre komponenter
i Groupboxen. Du kan undlade editno, og så skal det være KanalKal[i + 1]
i stedet.
Kurt G (30.04.2013, 22:09)
"Michael Haase" skrev i meddelelsen
news:db0f

Kurt G skrev dette den 29-04-2013 21:59:
[..]
> ediM7.Text := FormatFloat('##0.000',(KanalKal[7]));
> ediM8.Text := FormatFloat('##0.000',(KanalKal[8]));
> Men findes der ikke en måde, så det kan gøres i en loop?
> For x := 1 to 8Do
> Begin
> ??????[x] := FormatFloat('##0.000',(KanalKal[x]));
> End;


Hvis du smider dine TEdit i en Tgroupbox, kan du bruge følgende:

editno := 0;
for i := 0 to Groupbox1.controlcount - 1 do
begin
if (groupbox1.controls[i] is TEdit) then
begin
inc(editno);
(groupbox1.controls[i] as TEdit).text :=
FormatFloat('##0.000',(KanalKal[editno]));
end
end;

EditNo skulle kun være nødvendigt, hvis du også kommer andre komponenter
i Groupboxen. Du kan undlade editno, og så skal det være KanalKal[i + 1]
i stedet.
------------------------------------------------------------------------------------------------

Tak for dit svar, jeg vil prøve, om jeg kan få det til at virke.
Mvh Kurt
Lignende emner