16. november 2004 - 20:32Der er
6 kommentarer og 1 løsning
edit1 som variabel
jeg skal have skrevet noget i en bestemt edit med et indexnummer. hvilken edit der skrives i skal afhænge af en variabel der kan antage forskellige tal.. f.eks. hvis variablen har værdien 1 skal der skrives i edit1 og hvis variablen har værdien 10 skal der skrives i edit10... hvordan bærer man sig ad med det??
ved enten at putte edit kontrollerne ind i et array, og tilgå dem ved: editArray[index]
hvor index angiver hvilken kontrol man vil ha' fat i.
ellers skulle du lave en funktion der returnerer den edit-kontrol du skal bruge på baggrund af index variablen som input. Således at du kalder GetEdit(index) for at få edit kontrollen.
Du kan bruge TEdits.Tag som du så kan søge efter. Der findes nemlig en liste over de komponenter der findes på en form. Hvis du gennemløber denne (det er enten Controls eller Components - sidder ikke ved en Delphi-maskine), så kan du kigge efter tag
men koden ligner noget i denne retning
for i := 0 to COntrolsCount - 1 do if Controls[i] is TEdit then if TEdit(Controls[i]).Tag = Value then TEdit(Controls[i]).Text := 'Hej mor';
begin MyList := TObjectList.Create(TRUE); for Cnt := 0 to 1000 do MyList.Add(TEdit.Create(NIL)); for Cnt := 0 to 1000 do TEdit(MyList[Cnt]).Text := IntToStr(Cnt); // husk når du er færdig med at bruge dine edit comp. skal du free den, det kan du gøre ved at MyList.free, da den blev lavet med Owned objects så free du og de 1000 edit comp. på den måde end;
Undskyld jeg kan ikke lade være med at brokke mig lidt. Jeg synes du har valgt en dårlig løsning.
1. Det er tæt på tumpet programmeringteknik ikke at give komponenterne fornuftige navne. Edit1 siger intet om hvad den bruges til, mens NavnEdit eller eNavn begge forklarer, at det er en TEdit der indeholder et navn.
2. Derfor er det også dumt at søge på en komponents navn. Det er langtfra så sikkert som at bruge tag.
3. Hvordan vil du takle et index mindre end 0? Du kan jo ikke have en 'Edit-1'.
grunden til at jeg valgte det svar jeg gjorde var at jeg kunne forstå det og det uden videre kunne bruges i det projekt jeg er ved. Jeg er nybegynder i delphi og derfor til enkle løsninger..
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.