AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Edit-Felder während der Laufzeit erstellen... wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Edit-Felder während der Laufzeit erstellen... wie?

Ein Thema von tiller · begonnen am 21. Jan 2008 · letzter Beitrag vom 22. Jan 2008
 
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#30

Re: Edit-Felder während der Laufzeit erstellen... wie?

  Alt 22. Jan 2008, 13:24
(Ich hoffe ich sehe, das richtig, dass du bei iengabe von z.B. 5 -> 5x6 Edit-Felder hast)
(Hattest du eigentlich lines und rows eingefügt und ich habe es übernommen --> besser rows und columns )

Also es gibt ja für ein Konzept ganz viele Möglichkeiten.
In deiner EditList sind ja alle Felder gespeichert. Die kannst du dir mit Editlist[x] rausholen. Die sind da auch der Reihe nach reingerutscht. Also müsste man die mit EditList[(zeile-1)*(n+1)+spalte-1] bekommen.
Das geht am schnellsten. Da wir aber auch die Edits bei dem Formular als owner angemeldet haben, können wir sie auch über das Formular und den Namen der Edits finden:
findcomponent(e+inttostr(Zeile)+inttostr(spalte)) Das kann allerdings etwas länger dauern (aber keinesfalls merklich länger)

Egal welchen Ausdruck du wählst. Du machst darum eine Klammer und setzt TEdit davor:
TEdit(EditList[(zeile-1)*(n+1)+spalte-1]) Und den Wert kannst du jetzt in einer Variable speichern, in With verwenden oder direkt nutzen:
Delphi-Quellcode:
//3 Beispiele
//1.
TEdit(EditList[(zeile-1)*(n+1)+spalte-1]).text:='Hallo';
TEdit(EditList[(zeile-1)*(n+1)+spalte-1]).visible:=false;
...

//2.
with TEdit(EditList[(zeile-1)*(n+1)+spalte-1]) do
begin
  text:=' ':
  visible:=false;
  ...
end;

//3.
var Edit:TEdit;
begin
  Edit:=TEdit(EditList[(zeile-1)*(n+1)+spalte-1]);
  Edit.text:='';
  Edit.visible:=true;
  ...
end;

Und nur um dir die Möglichkeiten aufzuzeigen, die es beim Programmieren so gibt. In deinem Fall könnte man das Konzept mit der Liste auch übern Haufen werfen und:
1. Ohne die Liste die Edits nach wie vor bei dem Formular anmelden (das führt ja auch eine Liste) und über FindComponent suchen. Da geht dann das Löschen nicht so einfach. Könnte man aber auch über FindComponent und dann x.free machen. Da spart man sich die Liste. Aber ein einfaches Clear aufzurufen anstatt mit einer Schleife alle Edits zu suchen ist etwas comfortabler.
2. Die Liste in einem Array speichern (Array of Array of TEdit). Die größe des Arrays der Matrix anpassen und jedes Element bekommt ein Objekt (create)
3....
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:23 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-2025 by Thomas Breitkreuz