![]() |
wie kann ich alle editfenster wieder leer machen
Guten abend
mir tut sich mal wieder ein problem auf, undzwar: wenn ich mein programm starte und werte in die edit fenster eingebe dann bleiben sie dadrin selbst wenn ich das fenster schliese, das projekt aber noch läuft. Also ich hab ein hauptmenü wenn ich dann eine berechnung machen will klicke ich auf berechnen dann tut sich ein neues fenster auf. in diesem fenster werden werte in die edit fenster eingegeben. wenn ich nun das fenster schliese und wieder neu öffne stehen die werte noch in den editfenstern drinne. Meine frage ist also wie bekomme ich bevor ich das fenster schliese die werte aus den edit fenstern raus????? mfg Rob danke für die Hilfe im vorraus |
Re: wie kann ich alle editfenster wieder leer machen
TEdit.Text := '';
\edit: Das da oben sind zwei einzelne Hochkommata, kein "Gänsefüßchen" ;) |
Re: wie kann ich alle editfenster wieder leer machen
Falsch dizzy.
Delphi-Quellcode:
Wenn es mehrere sind, würde sich wohl ein Konstrukt mit FindComponent anbieten.
Edit1.Text := '';
|
Re: wie kann ich alle editfenster wieder leer machen
... das gilt aber nur für "Edit1", nicht für alle edits! Daher "TEdit" als Platzhalter für beliebige Edits :warn: :zwinker:
|
Re: wie kann ich alle editfenster wieder leer machen
Wenn alles auf einer Form geleertt werden soll, bietet es sich auch an, die Form einfach neu zu createn.
Oder sonst mit FindComponent arbeiten, aber da gibt es hier genügend Beispiele |
Re: wie kann ich alle editfenster wieder leer machen
Wie ist das eigentlich: Ich hab eine Form mit ein paar Kompos drauf. Nun "Free'e" ich diese Form. Sind dann die Child-Kompos auch ge-free-d? Und wenn ich dieses Form dann wieder erzeuge, werden die Kompos dann auch mit created?
Das Freigeben müsste ja eigentlich => property "Parent". Aber beim createn? \edit: ![]() |
Re: wie kann ich alle editfenster wieder leer machen
Wenn die Kontrolls das Fenster / Formular als Parent haben ja. Und wenn du es zur Entwurfszeit erstellst, ist das automatisch der Fall.
|
Re: wie kann ich alle editfenster wieder leer machen
Danke erstmal
dennoch weis ich nicht wie das mit findcontrol gehen soll?? ich kann da zwar irgendwelche edit fenster finden aber nicht alle die ich dann leeren kann tut mir leid aber ich habs nicht so richtig verstanden und würde mich über etwas genaueres sehr freuen. mfg Rob |
Re: wie kann ich alle editfenster wieder leer machen
Drei Edits und ein Button:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer; begin for i := 1 to 3 {Anzahl Edits} do begin with TEdit(FindComponent('Edit'+IntToStr(i))) do begin if Text = '' then ShowMessage('Edit'+IntToStr(i)+' ist leer'); end; end; end; |
Re: wie kann ich alle editfenster wieder leer machen
Mal ne Zwischenfrage:
Gibt es einen Unterschied zwischen
Delphi-Quellcode:
und
Edit1.Text := '';
Delphi-Quellcode:
?
Edit1.Clear;
|
Re: wie kann ich alle editfenster wieder leer machen
Mein Vorschlag:
Delphi-Quellcode:
Dann sind die Namen der Edits auch Wurst und wenn mal eins hinzukommt brauchste nichts ändern.
Procedure ClearEdits;
var i: Integer; Begin For i:= 0 to Form1.ControlCount -1 Do Begin If Form1.Controls[i] is TEdit Then TEdit( Form1.Controls[i] ).Text:= ''; End; End; |
Re: wie kann ich alle editfenster wieder leer machen
Meins war auch nur so schnell mal reingehackt in die DP hier. Ich weiß gar nicht, ob das überhaupt kompiliert. ;)
|
Re: wie kann ich alle editfenster wieder leer machen
Hallo Matze,
Zitat:
Zitat:
|
Re: wie kann ich alle editfenster wieder leer machen
Äh, danke.
Aber nachher kommt doch dasselbe dabei raus. Der Source füllt es doch auch nur mit einem Leerstring. :stupid: |
Re: wie kann ich alle editfenster wieder leer machen
...hab auch mal ne frage dazu, wie sieht es aus , wenn ich auf die gleiche weise buttons (von button1 - button 12) enablen will ?
|
Re: wie kann ich alle editfenster wieder leer machen
Delphi-Quellcode:
for i := 1 to 12 do
begin with TButton(FindComponent('Button'+IntToStr(i))) do Enabled := True; end; |
Re: wie kann ich alle editfenster wieder leer machen
Moin Luckie,
Zitat:
Der Parent gibt an relativ zu welchem Fenster/Control ein Kompo angezeigt wird, der Owner bestimmt über die Lebensdauer einer Kompo. Wird der Owner zerstört, geschieht dies automatisch auch mit einer untergeordneten Kompo. |
Re: wie kann ich alle editfenster wieder leer machen
@ alcaeus antowort
Wenn ich genau den code benutze, sagt er mir , dass [Error] main.pas(89): Undeclared identifier: 'FindComponent' ?? sieht aber eigentlich ganz gut aus ... hilfe plz |
Re: wie kann ich alle editfenster wieder leer machen
Vielleicht fehlt ja eine Unit in den Uses? Aus der Suche ist mir nicht ganz klar geworden, welche man braucht, da
![]() |
Re: wie kann ich alle editfenster wieder leer machen
FindComponent ist eine Funktion des Objekts TComponent das in Classes.pas definiert ist. Die Classes-Unit wird normalerweise immer miteingebunden (was ja logisch ist, TComponent braucht man immer), also dürfte es keine Probleme geben. Probier mal Form1.FindCompontent(<Name>) obwohl das auf das gleiche sein müsste wie FindComponent(<Name>).
[add]Kann mir mal jemand bitte erklären wieso dieses Thema in Multimedia und nicht in VCL-Komponenten ist?[/add] |
DP-Maintenance
Dieses Thema wurde von "MrSpock" von "Multimedia" nach "VCL-Komponenten und Controls" verschoben.
Ist eine Frage zu einer VCL-Komponente. |
Re: wie kann ich alle editfenster wieder leer machen
also mit form1. dahinter geht es wunderbar :gruebel:
:cheers: thx 4 help :P |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 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