Såvidt jeg husker skal (kiggede på Delphi for mange år siden) skal dine labels oprettes som array -- altså have samme navn, når du indsætter dem på din form.
Hvis dine labels er arrangerede rimelig logisk er det klart lettest at smide dem ind i et array... Det gøres således:
private Labels: array [1..15{eller hvor mange du nu vil ha}] of TLabel;
procedure TForm1.FormCreate(Sender: TObject); var I: Integer; begin for I := Low(Labels) to High(Labels) do begin Labels[I] := TLabel.Create(Self); with Labels[I] do begin Parent := Self; Left := 17; Top := I*20; Caption := 'Hest'; Tag := I; //Sæt diverse andre værdier for dine labels her end; end; end;
Når dit program så er færdigt, så er det selvfølgelig en god ide at fjerne dine labels fra hukommelsen igen, efter som du selv har oprettet dem...
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); var I: Integer; begin for I := Low(Labels) to High(Labels) do Labels[I].Free; end;
Du kan også finde nummeret ud fra labelnavnet. Eks.
procedure TForm1.Button1Click(Sender: TObject); var i,temp: integer; begin for i := 0 to componentCount-1 do if Controls[i] is TLabel then begin Temp := StrToInt(copy(controls[i].name,6,255)); {label nr. } (Controls[i] as TLabel).Caption := 'Label nr. '+InttoStr(temp); end; end;
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.