Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Komponente über Nummer variabel ansprechen (https://www.delphipraxis.net/73058-komponente-ueber-nummer-variabel-ansprechen.html)

Armageddon 11. Jul 2006 18:17


Komponente über Nummer variabel ansprechen
 
Hallo,

ich versuche gerade den folgenden Code anzupassen. Folgendes Problem: Ich habe auf einem Formular über 20 TLabeledEdit-Felder und möchte diese nun in einer kleinen Funktion, siehe weiter unten, prüfen und gegenbenenfalls anpassen. Wie bekomme ich folgendes Gedankengerüst hin?

Delphi-Quellcode:
function Zuweisen(i: Integer): String;
var
  EditInhalt: String;
begin
  EditInhalt := Form1.LabeledEdit[i].Text;
  if EditInhalt = '' then Result := leer else Result := EditInhalt;
end;
Aufruf:

Delphi-Quellcode:
  v1 := Zuweisen(1);
  v2 := Zuweisen(2);
  usw.
Das muss doch irgendwie gehen. Ich denke bestimmt nur wieder zu kompliziert. :wall:

mkinzler 11. Jul 2006 18:21

Re: Komponente über Nummer variabel ansprechen
 
Das geht mit .FindComponent

Khabarakh 11. Jul 2006 18:22

Re: Komponente über Nummer variabel ansprechen
 
Die Murkslösung hieße FindComponent, aber es geht definitiv schöner.
Darf ich annehmen, dass alle Edits untereinander liegen oder sonstwie geordnet sind? Dann wäre es eigentlich sinnvoller (und schneller, aber du hast sie ja schon platziert), sie dynamisch zu erzeugen und in einem Array zu speichern.

[edit]
Ich hatte schon gehofft, der rote Kasten würde langsam funktionieren :gruebel: .
[/edit]

Armageddon 11. Jul 2006 18:26

Re: Komponente über Nummer variabel ansprechen
 
Dynamisch erstellen fällt ins Wasser.
FindComponent hmmm. Ich glaub ich schalt die Kiste heute lieber mal aus. Draussen ist es so heiss heute da funktioniert der Kopf nicht mehr richtig.

mkinzler 11. Jul 2006 18:35

Re: Komponente über Nummer variabel ansprechen
 
Delphi-Quellcode:
EditInhalt := (Form1.FindComponent('LabeledEdit'+IntToStr(i)) as TLabeledEdit).Text;

Armageddon 11. Jul 2006 18:37

Re: Komponente über Nummer variabel ansprechen
 
Cool, genau das habe ich gesucht. Nun ist der Tag doch noch gerettet. :angel:

Der_Unwissende 12. Jul 2006 09:06

Re: Komponente über Nummer variabel ansprechen
 
Hi,
nur der Vollständigkeit halber wollte ich hier mal erwähnen, dass sich find Control natürlich eher anbietet, da du ein Control suchst. Ist wahrscheinlich nur minimal schneller, aber du brauchst halt nicht alle TComponents betrachten, wenn es auch die Controls tun.

Gruß Der Unwissende


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:35 Uhr.

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