---
title: "Gå igenom många edit-rutor"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/55045-gå-igenom-många-edit-rutor"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "dr_blue"
published: "2002-10-03T16:28:31.000Z"
updated: "2002-10-06T11:42:17.000Z"
replies: 5
views: 245
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/55045-gå-igenom-många-edit-rutor"
---

# Gå igenom många edit-rutor

## #1 — dr_blue, 2002-10-03T16:28Z

Hej!

Jag håller på att göra ett enkelt fakturaprogram i Delphi, och jag har kommit till det stadiet där säljaren ska mata in i edit-rutor vad som skall säljas.

Jag har inte kommit på något bättre sätt än att skapa ett gäng rader med edit-rutor för all (antal, artikel, apris och totalt) information per rad..

Iallafall, mitt problem är att jag har 8 sådana här rader just nu, och min kod för att gå igenom dem ser ut såhär:

  if (StrToInt(edtAntal1.Text) \> 0) then
    if (StrToInt(edtApris1.Text) \> 0) then
      edtTotalt1.Text := IntToStr(StrToInt(edtAntal1.Text)\*StrToInt(edtApris1.Text));

för VARJE edit-rad, dvs edtAntal1 till edtAntal8..

Någon som har en vettig ide på hur jag lättare kan göra ovanstående?

Jag vågar inte ens tänka på den kod som kommer krävas när jag ska summera alla totalt-rutorna oxå..

Tacksam för alla tips och idéer!

Permalänk: https://www.webforum.nu/p/55045

## #2 — Beatbox, 2002-10-03T16:55Z

Du kan "leta" efter komponenter om du vet deras namn. Om du t ex har en Editruta som heter "Edit1" så kan du komma åt den så här :

```
(FindComponent('Edit1') as TEdit).Text = 'Hejsvejs';
```

Att summera alla editrutor görs så här :

```
var I : Integer;
var Temp : String;
var Sum : Integer;

Sum := 0; 

for I := 0 to 10 do
   begin
      Sum := Sum  + IntToStr((FindComponent('Edit1' + IntToStr(I)) as TEdit).Text)
   end;
```

Permalänk: https://www.webforum.nu/p/809592

## #3 — jt, 2002-10-03T20:23Z

\>Jag har inte kommit på något bättre
En grid kanske skulle funka bättre. Sedan kan man ju använda 0 som start värde i alla edit rutor och göra en kontroll på vad man tillåts mata in. Så att du slipper alla "if edit \> 0 then".

Permalänk: https://www.webforum.nu/p/809837

## #4 — MinOrk, 2002-10-04T07:11Z

Du kan oxå loopa igenom alla komponenter och kolla om de är en Edit-ruta ungefär så här (skrev ur huvet = kan bli fel...)

```
for i:=0 to ComponentCount-1 do
   if (Components[i] is TEdit) then
      if (StrToInt(TEdit(Components[i]).Text) > 0) then
         // gör nått bra
```

Permalänk: https://www.webforum.nu/p/810102

## #5 — dr_blue, 2002-10-05T14:21Z

> **jt skrev:**
>
> \>Jag har inte kommit på något bättre
> En grid kanske skulle funka bättre. Sedan kan man ju använda 0 som start värde i alla edit rutor och göra en kontroll på vad man tillåts mata in. Så att du slipper alla "if edit \> 0 then".

Good call. Jag har lagt in en StringGrid nu istället och fått den att anpassa sina rows i storlek. Nu har jag bara stött på ett (stort men säkert enkelt) problem, hur fasiken kan jag låta användaren mata in data i tabellen? :)

Jag vill att användaren ska kunna klicka på cellen som han ska mata in i och kunna börja skriva direkt "i" den.
Har testat att markera cellen, trycka F2 osv men jag kan fortfarande inte mata in i den :(

/Johan

Permalänk: https://www.webforum.nu/p/811330

## #6 — agneta_rung, 2002-10-06T11:42Z

Bland StringGridens properties finns Options. Sätt optionen goEditing till True så går det att editera griden.

Permalänk: https://www.webforum.nu/p/811895

---

Tråden på webben: https://www.webforum.nu/amne/programmering/55045-gå-igenom-många-edit-rutor
