Det er forresten Edit felter, men det er vel ikke af betydning?
Da jeg er relativt ny i Delphi har jeg endnu ikke forstået arrays helt, selvom jeg har læst om det på nettet. Altså jeg ved godt hvad et array er, men forstår ikke hvordan man bruger dem i Delphi endnu.
Hvis nu vi siger at jeg vil clear'e de 20 Edit felter, så havde jeg tænkt mig at gøre således:
for i := 01 to 20 do begin Unit12.Form12.Person[i].Clear; end;
Først og fremmest, skal du navngive de edit felter som skal gennemløbes på en ens måde.
Nu kalder du du dine edit felter for PersonXX. Det der er ens for dine edit felter er at de første 6 tegn er: Person og det kan du bruge til at udvælge dine felter når du skal gøre et eller andet ved dem.
Her er et eksempel, hvor SpeedButton5Click kaldes når der trykkes på en knap.
Proceduren løber alle komponenter i formen igennem, og hvis det er af typen TEDIT og de første 6 tegn af navnet på edit feltet er PERSON, så gøres der et eller andet ved edit feltet.
procedure TForm12.SpeedButton5Click(Sender: TObject); var C: TEdit; I: Integer; begin for I := 0 to Form12.ComponentCount - 1 do begin if (Form12.Components[I] is TEdit) AND (UpperCase(Copy(Form2.Components[I].Name, 0, 6)) = 'PERSON') then begin C := TEdit(Form12.Components[I]); C.Clear; end; end; end;
Efter clear kommandoen skal jeg gøre flere forskellige ting. Jeg har en listbox (ChosenNames) med nogle komponenter (antal varierer). Disse skal så sættes ind i Edit felterne (de samme som vi clearede lige før).
procedure TForm13.SelectNamesSaveBtnClick(Sender: TObject); var C: TEdit; I, j: Integer; begin // clear'e alle boksene for I := 0 to Form12.ComponentCount - 1 do begin if (Form12.Components[I] is TEdit) AND (UpperCase(Copy(Form12.Components[I].Name, 0, 6)) = 'PERSON') then begin C := TEdit(Form12.Components[I]); C.Clear; // test for j := 0 to 3 do begin C.Text := ChosenNames.Items[j]; end; end; end; end;
Ja skal heller ikke kunne sige om det burde virke det der, det var bare et forsøg.
Ok- jeg har en listbox som brugeren kan overføre nogle elementer til, vilkårligt mange. Når man så trykker på en knap for at gemme disse valgte elementer, så skal hvert enkelt element indsættes i en tekstboks for sig.
Hvis nu vi siger at de 3 første elementer i listboxen er disse: element0 element1 element2
Så skal 'element0' indsættes i Person01.Text, 'element1' indsættes i Person02.Text, og 'element2' indsættes i Person03.Text. Først cleares boksene dog, som vi har fundet en løsning på.
#7 Tak fordi du har lyst til at kigge på det, men det bliver ikke nødvendigt alligevel. Det gik op for mig at det med edit boksene blev et alt for stort arbejde, så vælger bare at gemme de valgte elementer i en ny listbox.
Jeg fik dog også svar på mit første spørgsmål, så du skal have tak :) Og selvfølgelig smid et svar.
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.