Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi editbox (https://www.delphipraxis.net/130446-editbox.html)

AlexanderBrade 8. Mär 2009 18:11


editbox
 
Hallo liebe Community,
ich habe noch ein kleines Problem zu umschiffen.
Ich habe 20 editFelder, nun kann man darin Zahlen von 1-15 eingeben.
Delphi soll eine Meldung ausgeben, wenn in 7 dieser Boxen ein Wert kleiner als 5 steht. Wie geht sowas?

Blackheart 8. Mär 2009 18:27

Re: editbox
 
Mit FindComponent

craash 8. Mär 2009 18:30

Re: editbox
 
spontan würd ich das so lösen

Delphi-Quellcode:
var editfelder: array [1..20] of TEdit = (edit1, edit2, ...);

procedure deinevent;
var i,zaehler:integer;
begin
zaehler:= 0;

for i:=1 to 20 do
  begin
  if ( strtoint(editfelder[i].text) < 5 ) then zaehler:= zaehler +1;
  end;

if zaehler >=7 then showmessage('bla');

end;

jaenicke 8. Mär 2009 18:32

Re: editbox
 
Liste der Anhänge anzeigen (Anzahl: 1)
Es gibt saubere und unsaubere Varianten. ;-)

Du könntest bei Änderungen einen Zähler aktualisieren, der das schon vorher mitzählt, du kannst aber auch einfach jedesmal in einer Schleife alle Edits durchgehen und zählen.

Vielleicht gibt dir das angehängte Projekt einen Hinweis dazu, dort wird beim An- oder Abwählen von CheckBoxen geschaut, dass nur maximal 5 ausgewählt werden können. In deinem Fall müsstest du den Inhalt des Edits in OnChange prüfen, aber das prinzipielle Vorgehen ist gleich.

AlexanderBrade 8. Mär 2009 18:56

Re: editbox
 
Ja damit habe ich schon mal gearbeitet.
Ich weiß aber net wirklich wie ich die Schleife aufbauen soll, so wie das craash vorschlägt wirds problematisch!

craash 8. Mär 2009 18:59

Re: editbox
 
wieso denn? :| :stupid:

AlexanderBrade 8. Mär 2009 19:01

Re: editbox
 
Naja sowas geht ja garnicht:
Delphi-Quellcode:
var editfelder: array [1..20] of TEdit = (edit1, edit2, ...);
Sollte ich mich irren sag es mir, aber so nimmt er es nicht an!

Blackheart 8. Mär 2009 19:03

Re: editbox
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 i:Integer;
begin
    for i:= 1 to 20 do
    if StrToInt(TEdit(FindComponent('Edit'+IntToStr(i))).Text) < 5 then
    inc(j);
    if j = 7 then ShowMessage('In '+IntToStr(j)+' Edits ist der Wert kleiner als vier');
end;

craash 8. Mär 2009 19:04

Re: editbox
 
Dass es nicht läuft, wenn du das genau so in den Code hineinkopierst ist doch klar...

Sollte ja nur das Prinzip darlegen, dass du (bei diesem Lösungsweg) die Editfelder zuerst in ein Array zusammenfassen musst.

AlexanderBrade 8. Mär 2009 19:05

Re: editbox
 
Ja aber wie funktioniert das? Denn bei mir ergebne sich auch nach dem Anpassen Probleme!


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:28 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