26. marts 2002 - 22:53Der er
4 kommentarer og 1 løsning
Mange checkbokse
Hej Der må være en her der hurtig kan svare mig på hvordan jeg gør når jeg nu har 16 checkbokse, som jeg gerne vil sætte til true eller false via en løkke ala.
for i := 1 to 16 do checkboks[i] := Get_resultat(i);
hvor Get_resultat(i) er en funktion der returnerer true eller false afhængig af en beregning. Get_resultat(i) er lavet, så spørgsmålet går kun på hvordan jeg sætte de 16 checkbokse uden at jeg skal til at bruge case ell. lign.
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
Det jeg ville gøre var at oprette checkboxene i formens onCreate. sådan her:
Først lav en global variabel som denne:
CB: array[1..16] of TCheckBox;
i formens onCreate skriver du dette:
var i: integer; begin for i := 1 to 16 do begin CB[i] := TCheckBox.Create(Self); CB[i].Left := 10; CB[i].Top := 20*i; CB[i].Caption := 'Checkbox' + inttostr(i); Form1.InsertControl(CB[i]); end; end;
Så kan du derefter køre din løkke som du selv har skrevet den.
>>speedy Det må da kunne lade sig gøre, uden at jeg skal til at oprette checkboksene programatisk. Da det vil være noget bøvlet for mig at gøre eftersom at de ikke er placeret i en række, og formen er også færdig lavet. Og det vil også være hurtigere at lave en case struktur i stedet for, men umiddelbart synes jeg bare at det er en ulogisk måde at gøre det på.
Gå ind og ændr alle checkboxenes tag property til det nummer som de har, og så kan du bruge dette når du vil "udfylde" dem.
procedure fill; var i: integer; begin for i := 0 to Pred(form1.ComponentCount) do begin if Form1.Components[i] is TCheckBox then (Form1.Components[i] as TCheckBox).Checked := Get_resultat((Form1.Components[i] as TCheckBox).Tag); end; end;
Det var ikke helt det jeg ledte efter, så jeg løste det selv på en mere smart måde, synes jeg da selv :-)
Men du ledte mig på sporet og du gad at svare på spørgsmålet, så du får pointene.
Min løsning ser ca. sådan her ud: var const get_resultat :array of string = ('AA','CB','LP','CF','VK',..........); const p3 :string = 'AALPCF'; cb: array[1..16] of TCheckBox;
Det var godt du selv kunne finde ud af noget ud fra min ide. Det er jo også lidt svært helt præcist at vide hvordan dem man hjælpers kode er opbygget så man kan hjælpe på den bedst mulige måde :)
/SpEeDy
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.