Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi if-Anweisungs Problem eines Anfängers (https://www.delphipraxis.net/15260-if-anweisungs-problem-eines-anfaengers.html)

Futzel 25. Jan 2004 10:16


if-Anweisungs Problem eines Anfängers
 
Hallo,

ich versuche gerade ein kleines Programm zu machen, welches prüft, ob eine eingegebene Zahl im Edit1 gerade oder ungerade ist. Wenn Buchstaben eingegeben werden, kommt eine Fehlermeldung. Jetzt kann man aber immer noch eine Zahl schreiben, sie dann löschen, und das Feld bleibt in der Farbe von der gerade geprüften Zahl, wegen der if-Anweisung. Jetzt möchte ich noch ein else dranhängen, das das feld wieder Weiß färbt wenn laenge nicht nicht gleich 0 (also gleich null). Irgendwie bekomme ich das aber nicht hin. Kann mir jemand helfen?

Hier ein Teil des Codes:

Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
var zahla: string;
    zahlz,laenge: integer;
begin
zahla := Edit1.Text;
laenge := length(zahla);
if laenge<>0 then
begin
try
zahlz := StrToInt(zahla[laenge]);
except on EConvertError do
begin
ShowMessage('Bitte nur Zahlen eingeben.');
Edit1.SetFocus;
Edit1.Text := '';
Exit;
end;
end;
if zahlz mod 2 = 1 then
begin
 Edit1.Color:=clRed;
end
else Edit1.Color:=clBlue;
end
else Edit1.Color:=clWhite;
end;
end;
Vielen Dank für eure Hilfe.

Gruß Futzel

SirThornberry 25. Jan 2004 10:19

Re: if-Anweisungs Problem eines Anfängers
 
im except-zweit einfach das Edit leeren

Luckie 25. Jan 2004 10:20

Re: if-Anweisungs Problem eines Anfängers
 
Formatier mal deinen Code, damit man ihn auch lesen kann.

Die Muhkuh 25. Jan 2004 10:21

Re: if-Anweisungs Problem eines Anfängers
 
Hi,


vielleicht machste in Onchage das:
Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
var zahla: string;
    zahlz,laenge: integer;
begin
  zahla := Edit1.Text;
  laenge := length(zahla);
  if laenge<>0 then
   begin
   try
     zahlz := StrToInt(zahla[laenge]);
   except on EConvertError do
   begin
     ShowMessage('Bitte nur Zahlen eingeben.');
     Edit1.SetFocus;
     Edit1.Text := '';
     Exit; //Kann nach meiner Meinung auch weggelassen werden
   end;
   end;
  if zahlz mod 2 = 1 then
  begin
    Edit1.Color:=clRed;
  end
  else
    Edit1.Color:=clBlue;
{****************************************}
if Edit1.Text = '' then
  Edit1.Color := clWhite;
{****************************************} 

end;
[edit=Luckie]Delphi-Tags ergänzt. Spider? Wie lange bist du schon hie rim Forum? :roll: Mfg, Luckie[/edit]
@Luckie: Die Tags hab ich grad selber gesetzt :P

edit: Code formatiert

Futzel 25. Jan 2004 17:15

Re: if-Anweisungs Problem eines Anfängers
 
Ich bedanke mich bei euch, und sry, das ich den Code nicht formatiert habe, das nächste mal mache ich das.
Vielen Dank und Grüße von Futzel


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