Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi EditBoxen mit Schleifen verbinden. Geht das? (https://www.delphipraxis.net/115332-editboxen-mit-schleifen-verbinden-geht-das.html)

knocko 10. Jun 2008 16:06


EditBoxen mit Schleifen verbinden. Geht das?
 
Hi Leute

Hab noch einmal eine Frage und zwar wollt ich meinen Quelltext gewaltig kürzen.
Und zwar hab ich ein Array und 15 Editboxen.

Jetzt hab ich diesen Quelltext:
Delphi-Quellcode:
  schueler[0] := StrToInt(Edit2.Text);
  schueler[1] := StrToInt(Edit3.Text);
  schueler[2] := StrToInt(Edit4.Text);
  schueler[3] := StrToInt(Edit5.Text);
  schueler[4] := StrToInt(Edit6.Text);
  schueler[5] := StrToInt(Edit7.Text);
  //...usw
Kann man das nicht irgendwie kürzen indem man hinter "Edit" (da wo die Zahl hinkommt) ne Variable hinsetzt?
Ungefähr in dieser Form.

Delphi-Quellcode:
  for i := 0 to 15 do
  begin
    schueler[i] := StrToInt(Edit[i+2].Text);
  end;
Soll halt Variable "i" um 2 erhöhen, damit die richtige Editbox dem richtigen Array zugeordnet wird.
Gibts da irgendiene Möglichkeit? Oder gibts ne Alternative

Als Fehler kommt: [Fehler] Unit3.pas(112): Undefinierter Bezeichner: 'Edit'

Fussball-Robby 10. Jun 2008 16:07

Re: EditBoxen mit Schleifen verbinden. Geht das?
 
Delphi-Referenz durchsuchenFindComponent() Damit kannst du nach Objekten suchen.

DeddyH 10. Jun 2008 16:08

Re: EditBoxen mit Schleifen verbinden. Geht das?
 
Delphi-Quellcode:
for i := 0 to 15 do
  begin
    schueler[i] := StrToInt((FindComponent('Edit' + IntToStr(i+2)) as TEdit).Text);
  end;
[edit] Dann halt noch nach TEdit casten für die Besserwisser :tongue: [/edit]

rollstuhlfahrer 10. Jun 2008 16:11

Re: EditBoxen mit Schleifen verbinden. Geht das?
 
HI,

ja ne Möglichkeit gibt es. Mit Findcomponent bekommst du mit Hilfe des richtigen Namens (Edit2..Edit3..Editx) eine Komponente. Die musst du nur noch nach TEdit casten und die Eigenschaft Text abfargen.
Beispiel:
Delphi-Quellcode:
Procedure Test;
var i: byte;
begin
for i := 1 to 15 do
begin
  Schueler[i] := StrToInt(TEdit(FindComponent('Edit' + IntToStr(i+2))).Text);
end;
Ich würde dir aber dazu raten, die Namen so einzustellen, dass du dann EdtSchueler1, EdtSchueler2, ... hast (nur zum einfacheren Verständniss)

Bernhard

Menno, wieso müssen da 2 vor mir sein??

EDIT: @DeddyH: ich bezweifle, dass ein TComponent einen .Text hat

knocko 10. Jun 2008 16:14

Re: EditBoxen mit Schleifen verbinden. Geht das?
 
Verdammt! Das ging ja super schnell!

Vielen Dank für eure Hilfe! Klappt wunderbar.
FindComponent ist ja was richtig feines. Zurzeit ist mein Programm 1MB groß und haufen lange Quelltexte.
Damit kann ich einiges ersetzen!

Thanx @ all!
Wieder was zu gelernt :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz