som finder de labels på min form, med captionen "hello" - hvorledes omregner jeg disse labels til et antal? Altså så jeg finder antallet af labels med den søgte caption
Jeg kan lige præcisere spørgsmålet - det skal helst også være navnene på labelsne. Nu er de kaldt label0, label1, label2... label9, så hvis det kan være det sidste bogstaver(tal), så ville det være lækkert
var c : integer; . . c:=0; her finder du alle labels og efter hver fundne skriver du inc(c); . . til sidst har du antallet i c ShowMessage('Antallet af fundne labels:'+inttostr(c));
hmm, jeg tænkte, at det ville være smart at kalde dem noget meget generelt, og bare tilføje nogle flere numre - så er det nemmere at hive det sidste tal ud. Men jeg kan vel kalde dem "cell" så
Tilføj StrUtils til din uses, RightStr befinder sig i denne unit.
Her er selve funktionen: procedure FindLabels(C : TComponent;Tekst : string;var ai : Tai); var i : integer; begin for i:=0 to C.ComponentCount-1 do if (C.Components[i] is tlabel) and ((C.Components[i] as tlabel).Caption=Tekst) then begin SetLength(ai,Length(ai)+1); ai[Length(ai)-1]:=RightStr(C.Components[i].Name,1); end; end;
---------
Hvis du vil finde alle labels på din form der indeholder 'goddag' kan du bruge den sådan:
procedure TForm1.Button2Click(Sender: TObject); var ai : Tai; i : integer; begin FindLabels(Self,'goddag',ai); for i:=0 to Length(ai)-1 do showmessage(ai[i]); end;
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.