Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi wie kann ich alle editfenster wieder leer machen (https://www.delphipraxis.net/16929-wie-kann-ich-alle-editfenster-wieder-leer-machen.html)

Robertlu 25. Feb 2004 19:01


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

dizzy 25. Feb 2004 19:02

Re: wie kann ich alle editfenster wieder leer machen
 
TEdit.Text := '';

\edit: Das da oben sind zwei einzelne Hochkommata, kein "Gänsefüßchen" ;)

Luckie 25. Feb 2004 19:04

Re: wie kann ich alle editfenster wieder leer machen
 
Falsch dizzy.
Delphi-Quellcode:
Edit1.Text := '';
Wenn es mehrere sind, würde sich wohl ein Konstrukt mit FindComponent anbieten.

dizzy 25. Feb 2004 19:05

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:

Alexander 25. Feb 2004 19:08

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

dizzy 25. Feb 2004 19:10

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: Dieser Thread gibt mir eine kleine Antwort... :chat:

Luckie 25. Feb 2004 19:35

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.

Robertlu 26. Feb 2004 08:04

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

Luckie 26. Feb 2004 14:31

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;

Matze 26. Feb 2004 14:35

Re: wie kann ich alle editfenster wieder leer machen
 
Mal ne Zwischenfrage:

Gibt es einen Unterschied zwischen

Delphi-Quellcode:
Edit1.Text := '';
und

Delphi-Quellcode:
Edit1.Clear;
?

Treffnix 26. Feb 2004 14:38

Re: wie kann ich alle editfenster wieder leer machen
 
Mein Vorschlag:

Delphi-Quellcode:
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;
Dann sind die Namen der Edits auch Wurst und wenn mal eins hinzukommt brauchste nichts ändern.

Luckie 26. Feb 2004 14:48

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. ;)

APP 27. Feb 2004 05:47

Re: wie kann ich alle editfenster wieder leer machen
 
Hallo Matze,
Zitat:

Zitat von Matze
Mal ne Zwischenfrage:
Gibt es einen Unterschied zwischen
Delphi-Quellcode:
Edit1.Text := '';
und
Delphi-Quellcode:
Edit1.Clear;
?

als Besitzer von D7 Enterprise kannst Du ja im Source nachschauen:
Zitat:

Zitat von StdCtrls.pas
procedure TCustomEdit.Clear;
begin
SetWindowText(Handle, '');
end;


Matze 27. Feb 2004 07:23

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:

FLINKER_FINGER 1. Mai 2004 13:31

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 ?

alcaeus 1. Mai 2004 15:55

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;

Christian Seehase 1. Mai 2004 16:01

Re: wie kann ich alle editfenster wieder leer machen
 
Moin Luckie,

Zitat:

Zitat von Luckie
Wenn die Kontrolls das Fenster / Formular als Parent haben ja.

nicht Parent sondern Owner.
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.

FLINKER_FINGER 3. Mai 2004 14:32

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

S2B 3. Mai 2004 14:37

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 hier einige aufgelistet sind... Kannst ja mal alle ausprobieren! :zwinker:

alcaeus 3. Mai 2004 14:54

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 3. Mai 2004 15:11

DP-Maintenance
 
Dieses Thema wurde von "MrSpock" von "Multimedia" nach "VCL-Komponenten und Controls" verschoben.
Ist eine Frage zu einer VCL-Komponente.

FLINKER_FINGER 3. Mai 2004 15:23

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