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
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.