AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Edit Felder

Ein Thema von superstar025 · begonnen am 28. Sep 2005 · letzter Beitrag vom 28. Sep 2005
 
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Edit Felder

  Alt 28. Sep 2005, 14:28
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
  Erg: double;
begin
  Erg := 0;

  for i := 1 to 12 do
    Erg := Erg + StrToFloat((FindComponent('Edit' + IntToStr(i)) as TEdit).Text);

  if Erg <> 1 then
    if MessageDlg('Die Summe der 12 Monate muss 1 ergeben, aktuelle Summe: ' + FloatToStr(Erg) + '. Bitte korrigieren', mtWarning, [mbYes], 0) = mrYes then
      Button2.Enabled := false
end;

procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
begin
  //Nur Ziffern, Backspace, Punkt und Komma zulassen
  if not (Key in [#48..#57, #8, '.', ',']) then
    key := #0;

  //Punkt durch Komma ersetzen
  if key = '.then
    key := ',';

  //Komma überprüfen
  if key = ',then
    with (Sender as TEdit) do
      if Text = 'then //wenn Komma als erstes Zeichen,
        Text := '0'     //dann eine 0 davor einfügen
      else
        if Pos(',',Text) > 0 then //Nur ein Komma möglich
          key := #0;
end;
Wenn man schon testet, dann sollte man auch gleich richtig testen. Allerdings hab ich bestimmt irgendwo falsch gedacht Is auf jeden Fall ungetestet und nur kurz hingeschmiert.
So wird auch getestet, ob das Komma das erste Zeichen war (dann wird eine 0 vors Komma geschrieben) und ob bereits ein Komma existiert (dann wird das Komma nicht akzeptiert).
Bin mir gerade nicht mehr sicher, ob das Setzen von Edit.Text den Text selektiert, falls das der Fall ist, müßte man evtl noch die Selektion löschen.

//Edit: Kleine Fehlerchen entfernt
//Edit: En bisserl kommentiert
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20: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