Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Wert für alle Objekte gleichen Typs ändern? (https://www.delphipraxis.net/28496-wert-fuer-alle-objekte-gleichen-typs-aendern.html)

tuxracer78 25. Aug 2004 13:46


Wert für alle Objekte gleichen Typs ändern?
 
Hallo,

ich habe auf einem Formular über 200 SpinEdits, die vom Benutzer gefüllt werden können (Mengeneingaben beim Bestellvorgang). Wenn das Formular bei einem neuen Bestellvorgang geöffnet wird, sind die Werte noch in den SpinEdits. Ich möchte, daß die Werte beim Öffnen des Formulars automatisch auf 0 zurückgesetzt werden. Theoretisch ginge das jeweils mit SpinEdit1.value:=0, was aber bei über 200 Feldern etwas mühsam wäre.
Meine Frage: Gibt es einen Befehl, der mir beim Öffnen eines Formulars alle Objekte eines bestimmten Typs (in meinem Fall SpinEdit) zurücksetzt?
Hier mein Denkansatz:
Delphi-Quellcode:
  with
    TSpinEdit(FormBestellung.FindComponent(*alle SpinEdits*)) do
     begin
        value:=0;
     end;
Gruß

Gregor

xineohp 25. Aug 2004 13:53

Re: Wert für alle Objekte gleichen Typs ändern?
 
moin,

folgendes sollte funktionieren:

Delphi-Quellcode:
For i:=0 to Form1.ComponentCount-1 do
  If Form1.Components[i] is TSpinEdit
    then TSpinedit(Form1.Components[i]).value := 0;

nailor 25. Aug 2004 13:54

Re: Wert für alle Objekte gleichen Typs ändern?
 
entweder:

findcomponent
component-eigenschaft der form mit is durchgehen
per copy-paste eine reset routine schreiben

Bitworm 25. Aug 2004 13:56

Re: Wert für alle Objekte gleichen Typs ändern?
 
Hi !

Ich würde in einer Schleife alle Componenten durchlaufen und feststellen
ob sie vom gewünschten Typ sind:

Code:
for i := 0 to Self.ComponentCount-1 do
begin
  if Self.Components[i] is TSpinEdit then
  begin
    with Self.Components[i] as TSpinEdit do
    begin
      Value := 0;
    end;
  end;
end;
Anmerkung an alle Erbsenzähler : Code nicht getestet und soll nur ein Lösungsansatz sein

alcaeus 25. Aug 2004 13:56

Re: Wert für alle Objekte gleichen Typs ändern?
 
Delphi-Quellcode:
for i := 1 to ComponentIndex do
begin
  if Components[i-1] is TSpinEdit then
    TSpinEdit(Components[i-1]).Value := 0;
end;
Greetz
alcaeus

[add]Mann war ich lahm[/add]

Bitworm 25. Aug 2004 13:56

Re: Wert für alle Objekte gleichen Typs ändern?
 
Hi !

Ich würde in einer Schleife alle Componenten durchlaufen und feststellen
ob sie vom gewünschten Typ sind:

Code:
for i := 0 to Self.ComponentCount-1 do
begin
  if Self.Components[i] is TSpinEdit then
  begin
    with Self.Components[i] as TSpinEdit do
    begin
      Value := 0;
    end;
  end;
end;
Anmerkung an alle Erbsenzähler : Code nicht getestet und soll nur ein Lösungsansatz sein

Bitworm 25. Aug 2004 14:00

Re: Wert für alle Objekte gleichen Typs ändern?
 
Auch wenn es nicht ins Themas passt: Ist das ein Bug im Forum, daß wenn man
die "Zurück"-Funktion des Browsers nach dem Schreiben einer Antwort nutzt,
die Nachricht ein weiteres mal gespeichert wird ?

roderich 25. Aug 2004 14:04

Re: Wert für alle Objekte gleichen Typs ändern?
 
hallo tuxracer78,

alternativ könntest Du auch das Formular beim Beenden freigeben (Action := caFree im OnClose oder selber FreeAndNil nach dem ShowModal) und vor dem nächsten Anzeigen neu erzeugen. Dann sind die SpinEdit-Felder auch wieder auf Default (=0).

Gruß
Roderich

nailor 25. Aug 2004 14:07

Re: Wert für alle Objekte gleichen Typs ändern?
 
Zitat:

Zitat von Bitworm
Auch wenn es nicht ins Themas passt: Ist das ein Bug im Forum, daß wenn man
die "Zurück"-Funktion des Browsers nach dem Schreiben einer Antwort nutzt,
die Nachricht ein weiteres mal gespeichert wird ?

das ist ein bug in deinem browser (=IE?).

aber eigentlich sollte das posten des gleichen beitrags (warum auch immer) von dp geblockt werden

Bitworm 25. Aug 2004 14:39

Re: Wert für alle Objekte gleichen Typs ändern?
 
Zitat:

Zitat von nailor
Zitat:

Zitat von Bitworm
Auch wenn es nicht ins Themas passt: Ist das ein Bug im Forum, daß wenn man
die "Zurück"-Funktion des Browsers nach dem Schreiben einer Antwort nutzt,
die Nachricht ein weiteres mal gespeichert wird ?

das ist ein bug in deinem browser (=IE?).

aber eigentlich sollte das posten des gleichen beitrags (warum auch immer) von dp geblockt werden

Bingo, es ist der IE :wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:41 Uhr.
Seite 1 von 2  1 2      

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