Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

[Delphi] Meerdere TEdits dynamisch inlezen.

Joris
4 antwoorden
  • Ik weet niet meer zeker of dit kan maar ik wil graag drie TEdits inlezen met bijvoorbeeld een for-loopjes.

    Array[0] := Edit1.text
    Array[1] := Edit2.text
    Array[2] := Edit3.text

    Maar dan netter met

    (pseudo)
    For
    Array[teller] := Edit.teller;

    Nou test ik met drie maar hierna wil ik 9x9 TEdits objecten inlezen in een 2D-array. Om dan 81 keer statisch een array positie te gaan inlezen staat zo slordig.
  • Het is alweer eent tijdje geleden dat ik in Delphi gewerkt heb, maar je kan volgens mij een array van TEdits maken, in plaats van een aantal aparte TEdits. Dan zou je ze dus moeten aanmaken in je FormCreate methode.

    Als je dan je for loopje wilt, krijg je iets van:

    (pseudo)
    For
    Array[teller] := Edit[teller].text;
  • Het probleem zit hem nou net in die variabele met Edit.
    Of het nu Edit$I oid zou kunnen zijn.

    Ik zit nu wat te kijken met de optie tags, maar veel verder kom ik niet.
  • Volgens mij begrijp je nog niet wat ik bedoel (anders begrijp ik niet wat jij bedoelt :P)

    In plaats van dat je dus de TEdits in je designer op je form zet, doe je het volgende als je bijvoorbeeld 5 TEdits wilt maken:

    - Zet dit bij je globale variabelen:
    [code:1:e4fddcdf84]Edits : array[1..5] of TEdit;[/code:1:e4fddcdf84]

    - In de OnCreate van je form zet je het volgende (uiteraard aanpassen aan jouw programma):
    [code:1:e4fddcdf84]for i:=1 to 5 do
    begin
    Edits[i]:=TEdit.Create(naamVanForm);
    Edits[i].Parent:= naamVanForm;
    Edits[i].Left:=10;
    Edits[i].Top:= naamVanForm.Height-(5-i)*40-100;
    Edits[i].Text:='Edit '+IntToStr(i);
    end;[/code:1:e4fddcdf84]

    Nu kan je als je vanuit je programma in een for-loop je Edits wil uitlezen, de notatie Edits[1] t/m Edits[5] gebruiken.

    Hier staat nog een uitgebreidere uitleg.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.